diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-04-21 23:28:03 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-04-21 23:28:03 +0000 |
commit | 706fdc98c3d30687d1ce359f58424c87e253017c (patch) | |
tree | 5cfbd0dae75e35cb6d71af44aee2d7054b3e11c6 /libbb/find_root_device.c | |
parent | 1359da6ac7f7f44f82d224e61cc2c6ecb58baeef (diff) | |
download | busybox-w32-706fdc98c3d30687d1ce359f58424c87e253017c.tar.gz busybox-w32-706fdc98c3d30687d1ce359f58424c87e253017c.tar.bz2 busybox-w32-706fdc98c3d30687d1ce359f58424c87e253017c.zip |
find_root_device: use lstat - don't follow links
Diffstat (limited to 'libbb/find_root_device.c')
-rw-r--r-- | libbb/find_root_device.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libbb/find_root_device.c b/libbb/find_root_device.c index 7182102c7..9779f7e82 100644 --- a/libbb/find_root_device.c +++ b/libbb/find_root_device.c | |||
@@ -41,7 +41,8 @@ static char *find_block_device_in_dir(struct arena *ap) | |||
41 | 41 | ||
42 | while ((entry = readdir(dir)) != NULL) { | 42 | while ((entry = readdir(dir)) != NULL) { |
43 | safe_strncpy(ap->devpath + len, entry->d_name, rem); | 43 | safe_strncpy(ap->devpath + len, entry->d_name, rem); |
44 | if (stat(ap->devpath, &ap->st) != 0) | 44 | /* lstat: do not follow links */ |
45 | if (lstat(ap->devpath, &ap->st) != 0) | ||
45 | continue; | 46 | continue; |
46 | if (S_ISBLK(ap->st.st_mode) && ap->st.st_rdev == ap->dev) { | 47 | if (S_ISBLK(ap->st.st_mode) && ap->st.st_rdev == ap->dev) { |
47 | retpath = xstrdup(ap->devpath); | 48 | retpath = xstrdup(ap->devpath); |