aboutsummaryrefslogtreecommitdiff
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
parentec91de762a7d14cbed5e5972279d2378ae2e5a27 (diff)
downloadbusybox-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.c2
-rw-r--r--include/libbb.h2
-rw-r--r--libbb/find_root_device.c8
-rw-r--r--util-linux/mount.c2
-rw-r--r--util-linux/umount.c2
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);
135extern void erase_mtab(const char * name); 135extern void erase_mtab(const char * name);
136extern long *find_pid_by_name( const char* pidName); 136extern long *find_pid_by_name( const char* pidName);
137extern char *find_real_root_device_name(const char* name); 137extern char *find_real_root_device_name(void);
138extern char *bb_get_line_from_file(FILE *file); 138extern char *bb_get_line_from_file(FILE *file);
139extern char *bb_get_chomped_line_from_file(FILE *file); 139extern char *bb_get_chomped_line_from_file(FILE *file);
140extern int bb_copyfd_size(int fd1, int fd2, const off_t size); 140extern 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
30extern char *find_real_root_device_name(const char* name) 30extern 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;