pci: fix non NULL-terminated vector used as C string overflow 60/28060/2
authorBenoît Ganne <bganne@cisco.com>
Fri, 24 Jul 2020 15:04:06 +0000 (17:04 +0200)
committerDave Wallace <dwallacelf@gmail.com>
Fri, 24 Jul 2020 21:13:05 +0000 (21:13 +0000)
Type: fix

Change-Id: Iab512ba8c72c9e20aeba2d4265276bcabf095d46
Signed-off-by: Benoît Ganne <bganne@cisco.com>
src/vlib/linux/vfio.c

index 33de135..dc68c52 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)
     {