>-----Original Message----- >From: Cédric Le Goater <c...@redhat.com> >Sent: Thursday, December 21, 2023 4:10 PM >Subject: [PATCH] vfio/iommufd: Remove the use of stat() to check file >existence > >Using stat() before opening a file or a directory can lead to a >time-of-check to time-of-use (TOCTOU) filesystem race, which is >reported by coverity as a Security best practices violations. The >sequence could be replaced by open and fdopendir but it doesn't add >much in this case. Simply use opendir to avoid the race. > >Fixes: CID 1531551 >Signed-off-by: Cédric Le Goater <c...@redhat.com>
Thanks for fixing, Reviewed-by: Zhenzhong Duan <zhenzhong.d...@intel.com> BRs. Zhenzhong >--- > hw/vfio/iommufd.c | 6 ------ > 1 file changed, 6 deletions(-) > >diff --git a/hw/vfio/iommufd.c b/hw/vfio/iommufd.c >index >d4c586e842def8f04d3a914843f5eece2c75ea30..9bfddc1360895413176a9f >170e29e89027384a66 100644 >--- a/hw/vfio/iommufd.c >+++ b/hw/vfio/iommufd.c >@@ -121,17 +121,11 @@ static int iommufd_cdev_getfd(const char >*sysfs_path, Error **errp) > DIR *dir = NULL; > struct dirent *dent; > gchar *contents; >- struct stat st; > gsize length; > int major, minor; > dev_t vfio_devt; > > path = g_strdup_printf("%s/vfio-dev", sysfs_path); >- if (stat(path, &st) < 0) { >- error_setg_errno(errp, errno, "no such host device"); >- goto out_free_path; >- } >- > dir = opendir(path); > if (!dir) { > error_setg_errno(errp, errno, "couldn't open directory %s", path); >-- >2.43.0