pci: fix non NULL-terminated vector used as C string overflow 95/28495/2
authorBenoît Ganne <[email protected]>
Fri, 24 Jul 2020 15:04:06 +0000 (17:04 +0200)
committerAndrew Yourtchenko <[email protected]>
Tue, 18 Aug 2020 19:47:21 +0000 (19:47 +0000)
Type: fix

Change-Id: Iab512ba8c72c9e20aeba2d4265276bcabf095d46
Signed-off-by: Benoît Ganne <[email protected]>
(cherry picked from commit e3a24300d08f04146935ec0d3b02e03276d6cc68)

MAINTAINERS
src/vlib/linux/vfio.c

index 1b52b73..ad3dd16 100644 (file)
@@ -67,6 +67,13 @@ M:   Damjan Marion <[email protected]>
 M:     Dave Barach <[email protected]>
 F:     src/vlib/buffer*.[ch]
 
+Vector Library - PCI
+I:      pci
+M:      Damjan Marion <[email protected]>
+F:      src/vlib/pci/
+F:      src/vlib/linux/pci.[ch]
+F:      src/vlib/linux/vfio.[ch]
+
 Binary API Libraries
 I:     api
 M:     Dave Barach <[email protected]>
index 1ed99ce..1b901af 100644 (file)
@@ -185,8 +185,9 @@ linux_vfio_group_get_device_fd (vlib_pci_addr_t * addr, int *fdp,
   int fd;
 
   *is_noiommu = 0;
-  s = format (s, "/sys/bus/pci/devices/%U/iommu_group", format_vlib_pci_addr,
-             addr);
+  s =
+    format (s, "/sys/bus/pci/devices/%U/iommu_group%c", format_vlib_pci_addr,
+           addr, 0);
   tmpstr = clib_sysfs_link_to_name ((char *) s);
   if (tmpstr)
     {
@@ -201,8 +202,8 @@ linux_vfio_group_get_device_fd (vlib_pci_addr_t * addr, int *fdp,
     }
   vec_reset_length (s);
 
-  s = format (s, "/sys/bus/pci/devices/%U/iommu_group/name",
-             format_vlib_pci_addr, addr);
+  s = format (s, "/sys/bus/pci/devices/%U/iommu_group/name%c",
+             format_vlib_pci_addr, addr, 0);
   err = clib_sysfs_read ((char *) s, "%s", &tmpstr);
   if (err == 0)
     {