summaryrefslogtreecommitdiff
path: root/shell/hush_test/hush-vars/var_unbackslash.tests
diff options
context:
space:
mode:
authorThomas De Schampheleire2013-06-21 21:27:56 +0200
committerDenys Vlasenko2013-06-27 03:44:46 +0200
commit879f008a8f890f83a005d0816d259c6157121e5b (patch)
treec04cb9e6376d8eb18e17d19eaa9f8e35ce45a86b /shell/hush_test/hush-vars/var_unbackslash.tests
parentd66eb9042dcc6ee274949fb83612cecbbde44a4a (diff)
downloadbusybox-879f008a8f890f83a005d0816d259c6157121e5b.zip
busybox-879f008a8f890f83a005d0816d259c6157121e5b.tar.gz
lsof: correct check for symbolic link
Busybox lsof used the d_type field of a 'struct dirent' to verify whether the entry is a symbolic link. This field, however, is not portable. On at least one board [1] I have seen, that field is 0, and the check fails even though the entry is a link. The explicit check for a symbolic link is really only needed to skip the default directory entries '.' and '..'. The directory /proc/<pid>/fd/ should not contain anything else but these two and symbolic links. With these assumptions, this patch replaces the explicit link check with a basic check for '.' and '..' (and any hidden file). In the unlikely case that there are other file types, xmalloc_readlink() will return NULL, and we can skip the entry. [1] A MIPS-based board with glibc 2.9, Linux 2.6.32.27. Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell/hush_test/hush-vars/var_unbackslash.tests')
0 files changed, 0 insertions, 0 deletions