diff options
author | Eric Andersen <andersen@codepoet.org> | 2004-08-03 00:14:02 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2004-08-03 00:14:02 +0000 |
commit | 93d7fba89288db6f9263c0ce8026f277bc4649e0 (patch) | |
tree | b8a572b7a2ccc68c5edad3a9691fbb017d7a39ae | |
parent | ec91de762a7d14cbed5e5972279d2378ae2e5a27 (diff) | |
download | busybox-w32-93d7fba89288db6f9263c0ce8026f277bc4649e0.tar.gz busybox-w32-93d7fba89288db6f9263c0ce8026f277bc4649e0.tar.bz2 busybox-w32-93d7fba89288db6f9263c0ce8026f277bc4649e0.zip |
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
-rw-r--r-- | coreutils/df.c | 2 | ||||
-rw-r--r-- | include/libbb.h | 2 | ||||
-rw-r--r-- | libbb/find_root_device.c | 8 | ||||
-rw-r--r-- | util-linux/mount.c | 2 | ||||
-rw-r--r-- | util-linux/umount.c | 2 |
5 files changed, 10 insertions, 6 deletions
diff --git a/coreutils/df.c b/coreutils/df.c index cff69fe1a..ba2e7ccc9 100644 --- a/coreutils/df.c +++ b/coreutils/df.c | |||
@@ -130,7 +130,7 @@ extern int df_main(int argc, char **argv) | |||
130 | } else if (strcmp(device, "/dev/root") == 0) { | 130 | } else if (strcmp(device, "/dev/root") == 0) { |
131 | /* Adjusts device to be the real root device, | 131 | /* Adjusts device to be the real root device, |
132 | * or leaves device alone if it can't find it */ | 132 | * or leaves device alone if it can't find it */ |
133 | if ((device = find_real_root_device_name(device)) == NULL) { | 133 | if ((device = find_real_root_device_name()) == NULL) { |
134 | goto SET_ERROR; | 134 | goto SET_ERROR; |
135 | } | 135 | } |
136 | } | 136 | } |
diff --git a/include/libbb.h b/include/libbb.h index c52e65555..afbd0203e 100644 --- a/include/libbb.h +++ b/include/libbb.h | |||
@@ -134,7 +134,7 @@ extern void write_mtab(char* blockDevice, char* directory, | |||
134 | char* filesystemType, long flags, char* string_flags); | 134 | char* filesystemType, long flags, char* string_flags); |
135 | extern void erase_mtab(const char * name); | 135 | extern void erase_mtab(const char * name); |
136 | extern long *find_pid_by_name( const char* pidName); | 136 | extern long *find_pid_by_name( const char* pidName); |
137 | extern char *find_real_root_device_name(const char* name); | 137 | extern char *find_real_root_device_name(void); |
138 | extern char *bb_get_line_from_file(FILE *file); | 138 | extern char *bb_get_line_from_file(FILE *file); |
139 | extern char *bb_get_chomped_line_from_file(FILE *file); | 139 | extern char *bb_get_chomped_line_from_file(FILE *file); |
140 | extern int bb_copyfd_size(int fd1, int fd2, const off_t size); | 140 | extern int bb_copyfd_size(int fd1, int fd2, const off_t size); |
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 @@ | |||
27 | 27 | ||
28 | 28 | ||
29 | 29 | ||
30 | extern char *find_real_root_device_name(const char* name) | 30 | extern char *find_real_root_device_name(void) |
31 | { | 31 | { |
32 | DIR *dir; | 32 | DIR *dir; |
33 | struct dirent *entry; | 33 | struct dirent *entry; |
@@ -54,7 +54,11 @@ extern char *find_real_root_device_name(const char* name) | |||
54 | * would get a false positive on ".." */ | 54 | * would get a false positive on ".." */ |
55 | if (myname[0] == '.' && myname[1] == '.' && !myname[2]) | 55 | if (myname[0] == '.' && myname[1] == '.' && !myname[2]) |
56 | continue; | 56 | continue; |
57 | 57 | #ifdef CONFIG_FEATURE_DEVFS | |
58 | /* if there is a link named /dev/root skip that too */ | ||
59 | if (strcmp(myname, "root")==0) | ||
60 | continue; | ||
61 | #endif | ||
58 | fileName = concat_path_file("/dev", myname); | 62 | fileName = concat_path_file("/dev", myname); |
59 | 63 | ||
60 | /* Some char devices have the same dev_t as block | 64 | /* Some char devices have the same dev_t as block |
diff --git a/util-linux/mount.c b/util-linux/mount.c index 0bc46ecb5..b059d7094 100644 --- a/util-linux/mount.c +++ b/util-linux/mount.c | |||
@@ -345,7 +345,7 @@ static void show_mounts(char *onlytype) | |||
345 | if (strcmp(blockDevice, "rootfs") == 0) { | 345 | if (strcmp(blockDevice, "rootfs") == 0) { |
346 | continue; | 346 | continue; |
347 | } else if (strcmp(blockDevice, "/dev/root") == 0) { | 347 | } else if (strcmp(blockDevice, "/dev/root") == 0) { |
348 | blockDevice = find_real_root_device_name(blockDevice); | 348 | blockDevice = find_real_root_device_name(); |
349 | } | 349 | } |
350 | if (!onlytype || (strcmp(m->mnt_type, onlytype) == 0)) { | 350 | if (!onlytype || (strcmp(m->mnt_type, onlytype) == 0)) { |
351 | printf("%s on %s type %s (%s)\n", blockDevice, m->mnt_dir, | 351 | printf("%s on %s type %s (%s)\n", blockDevice, m->mnt_dir, |
diff --git a/util-linux/umount.c b/util-linux/umount.c index 37a8f061e..21c2e6e4d 100644 --- a/util-linux/umount.c +++ b/util-linux/umount.c | |||
@@ -115,7 +115,7 @@ static char *mtab_getinfo(const char *match, const char which) | |||
115 | } else if (strcmp(cur->device, "/dev/root") == 0) { | 115 | } else if (strcmp(cur->device, "/dev/root") == 0) { |
116 | /* Adjusts device to be the real root device, | 116 | /* Adjusts device to be the real root device, |
117 | * or leaves device alone if it can't find it */ | 117 | * or leaves device alone if it can't find it */ |
118 | cur->device = find_real_root_device_name(cur->device); | 118 | cur->device = find_real_root_device_name(); |
119 | } | 119 | } |
120 | #endif | 120 | #endif |
121 | return cur->device; | 121 | return cur->device; |