[PATCH] lsblk: improve error reporting for invalid device paths
sina-abroshan <[email protected]> Thu, 12 Feb 2026 14:54:23 +0330
| Newsgroups | org.kernel.vger.util-linux |
|---|---|
| Message-ID | <[email protected]> |
Differentiate stat() failures from non-block-device cases, so users get accurate errno-based error messages. Signed-off-by: sina-abroshan <[email protected]> --- misc-utils/lsblk.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/misc-utils/lsblk.c b/misc-utils/lsblk.c index 3d2bc21a6..4a0d7c70e 100644 --- a/misc-utils/lsblk.c +++ b/misc-utils/lsblk.c @@ -1793,14 +1793,20 @@ static int __process_one_device(struct lsblk_devtree *tr, char *devname, dev_t d int real_part = 0, rc = -EINVAL; if (devno == 0 && devname) { - struct stat st; + struct stat st; - DBG(DEV, ul_debug("%s: reading alone device", devname)); + DBG(DEV, ul_debug("%s: reading alone device", devname)); - if (stat(devname, &st) || !S_ISBLK(st.st_mode)) { + if (stat(devname, &st) != 0) { + warn(_("%s"), devname); + goto leave; + } + + if (!S_ISBLK(st.st_mode)) { warnx(_("%s: not a block device"), devname); goto leave; } + devno = st.st_rdev; } else if (devno) { DBG(DEV, ul_debug("%d:%d: reading alone device", major(devno), minor(devno))); -- 2.34.1