vlib: allocate pci product_name with vec_alloc 08/34308/2
authorRay Kinsella <mdr@ashroe.eu>
Tue, 2 Nov 2021 13:18:49 +0000 (13:18 +0000)
committerDamjan Marion <dmarion@me.com>
Tue, 2 Nov 2021 22:25:40 +0000 (22:25 +0000)
The pci device product_name array was being allocated with vec_validate, not
vec_alloc. This was allocating an additional byte at the end of the array, which
was causing a spurious '\0' to be returned in the middle of format strings.

Type: fix
Fixes: cef87f1a5e

Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Change-Id: I21e0aa4f0455ee03bd0acc675d0deae02eddea2b

src/vlib/linux/pci.c

index 7c18505..1e5ab67 100644 (file)
@@ -347,7 +347,7 @@ vlib_pci_get_device_info (vlib_main_t * vm, vlib_pci_addr_t * addr,
            break;
 
          len = (tag[2] << 8) | tag[1];
-         vec_validate (data, len);
+         vec_alloc (data, len);
 
          if (read (fd, data, len) != len)
            {