aboutsummaryrefslogtreecommitdiff
path: root/libbb/find_root_device.c
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2004-08-03 00:14:02 +0000
committerEric Andersen <andersen@codepoet.org>2004-08-03 00:14:02 +0000
commit93d7fba89288db6f9263c0ce8026f277bc4649e0 (patch)
treeb8a572b7a2ccc68c5edad3a9691fbb017d7a39ae /libbb/find_root_device.c
parentec91de762a7d14cbed5e5972279d2378ae2e5a27 (diff)
downloadbusybox-93d7fba89288db6f9263c0ce8026f277bc4649e0.tar.gz
Tito, farmatito at tiscali dot it writes:
Hi to all, This patch is useful for: 1) remove an unused var from extern char *find_real_root_device_name(const char* name) changing it to extern char *find_real_root_device_name(void). 2) fixes include/libbb.h, coreutils/df.c, util-linux/mount.c and util-linux/umount.c accordingly. 3) fixes a bug, really a false positive, in find_real_root_device_name() that happens if in the /dev directory exists a link named root (/dev/root) that should be skipped but is not. This affects applets like df that display wrong results
Diffstat (limited to 'libbb/find_root_device.c')
-rw-r--r--libbb/find_root_device.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/libbb/find_root_device.c b/libbb/find_root_device.c
index 81824a216..2600ce5e0 100644
--- a/libbb/find_root_device.c
+++ b/libbb/find_root_device.c
@@ -27,7 +27,7 @@
-extern char *find_real_root_device_name(const char* name)
+extern char *find_real_root_device_name(void)
{
DIR *dir;
struct dirent *entry;
@@ -54,7 +54,11 @@ extern char *find_real_root_device_name(const char* name)
* would get a false positive on ".." */
if (myname[0] == '.' && myname[1] == '.' && !myname[2])
continue;
-
+#ifdef CONFIG_FEATURE_DEVFS
+ /* if there is a link named /dev/root skip that too */
+ if (strcmp(myname, "root")==0)
+ continue;
+#endif
fileName = concat_path_file("/dev", myname);
/* Some char devices have the same dev_t as block