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
This commit is contained in:
parent
ec91de762a
commit
93d7fba892
@ -130,7 +130,7 @@ extern int df_main(int argc, char **argv)
|
||||
} else if (strcmp(device, "/dev/root") == 0) {
|
||||
/* Adjusts device to be the real root device,
|
||||
* or leaves device alone if it can't find it */
|
||||
if ((device = find_real_root_device_name(device)) == NULL) {
|
||||
if ((device = find_real_root_device_name()) == NULL) {
|
||||
goto SET_ERROR;
|
||||
}
|
||||
}
|
||||
|
@ -134,7 +134,7 @@ extern void write_mtab(char* blockDevice, char* directory,
|
||||
char* filesystemType, long flags, char* string_flags);
|
||||
extern void erase_mtab(const char * name);
|
||||
extern long *find_pid_by_name( const char* pidName);
|
||||
extern char *find_real_root_device_name(const char* name);
|
||||
extern char *find_real_root_device_name(void);
|
||||
extern char *bb_get_line_from_file(FILE *file);
|
||||
extern char *bb_get_chomped_line_from_file(FILE *file);
|
||||
extern int bb_copyfd_size(int fd1, int fd2, const off_t size);
|
||||
|
@ -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
|
||||
|
@ -345,7 +345,7 @@ static void show_mounts(char *onlytype)
|
||||
if (strcmp(blockDevice, "rootfs") == 0) {
|
||||
continue;
|
||||
} else if (strcmp(blockDevice, "/dev/root") == 0) {
|
||||
blockDevice = find_real_root_device_name(blockDevice);
|
||||
blockDevice = find_real_root_device_name();
|
||||
}
|
||||
if (!onlytype || (strcmp(m->mnt_type, onlytype) == 0)) {
|
||||
printf("%s on %s type %s (%s)\n", blockDevice, m->mnt_dir,
|
||||
|
@ -115,7 +115,7 @@ static char *mtab_getinfo(const char *match, const char which)
|
||||
} else if (strcmp(cur->device, "/dev/root") == 0) {
|
||||
/* Adjusts device to be the real root device,
|
||||
* or leaves device alone if it can't find it */
|
||||
cur->device = find_real_root_device_name(cur->device);
|
||||
cur->device = find_real_root_device_name();
|
||||
}
|
||||
#endif
|
||||
return cur->device;
|
||||
|
Loading…
Reference in New Issue
Block a user