[Bug 269190] bugs in stat(1) and devname(3), wrong report on disk names

From: <bugzilla-noreply_at_freebsd.org>
Date: Sat, 28 Jan 2023 13:38:05 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269190

Konstantin Belousov <kib@FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kib@FreeBSD.org

--- Comment #1 from Konstantin Belousov <kib@FreeBSD.org> ---
WRT the stat(1) patch, why do you _not_ pass S_IFBLK when the device is the
block device?  IMO it is more correct to do the following:

 #if HAVE_DEVNAME
-    sdata = (what == SHOW_st_dev) ?
-        devname(st->st_dev, S_IFBLK) :
-        devname(st->st_rdev, 
-        S_ISCHR(st->st_mode) ? S_IFCHR :
-        S_ISBLK(st->st_mode) ? S_IFBLK :
-        0U);
-    if (sdata == NULL)
-       sdata = "???";
+     sdata = devname(what == SHOW_st_dev ? st->st_dev :
+         st->st_rdev, S_ISCHR(st->st_mode) ? S_IFCHR :
+         (S_ISBLK(st->st_mode) ? S_IFBLK : 0));
 #endif /* HAVE_DEVNAME */

-- 
You are receiving this mail because:
You are the assignee for the bug.