← Commit list

1cda715bb

Eric Andersen
Eric Andersen
2004-01-13
FAILED Duration: 63s

Subject

Fix a bug where mount could check the wrong device. st_rdev is the correct device ID iff the named file is a character or block special device. Otherwise it is meaningless junk, in which case st_dev should be used. This was done incorrectly, which could cause mount to display bogus mount info. -

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

libbb/find_root_device.c+5 -2
@@ -38,8 +38,11 @@ extern char *find_real_root_device_name(const char* name)
if (stat("/", &rootStat) != 0)
bb_perror_msg("could not stat '/'");
else {
- if ((dev = rootStat.st_rdev)==0)
- dev=rootStat.st_dev;
+ /* This check is here in case they pass in /dev name */
+ if ((rootStat.st_mode & S_IFMT) == S_IFBLK)
+ dev = rootStat.st_rdev;
+ else
+ dev = rootStat.st_dev;
dir = opendir("/dev");
if (!dir)