aboutsummaryrefslogtreecommitdiff
path: root/htl
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2023-11-10 10:43:12 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2023-11-16 11:01:51 -0300
commita8dcffb30680d6db5704f9ce2fc30621ceb454e7 (patch)
treebcac86f64fb7b6a3805a84f6481df67007d7f697 /htl
parent3fddfe3c5d3c61f91401393814f7dc33be9c7dd3 (diff)
downloadglibc-a8dcffb30680d6db5704f9ce2fc30621ceb454e7.tar
glibc-a8dcffb30680d6db5704f9ce2fc30621ceb454e7.tar.gz
glibc-a8dcffb30680d6db5704f9ce2fc30621ceb454e7.tar.bz2
glibc-a8dcffb30680d6db5704f9ce2fc30621ceb454e7.zip
elf: Handle non-directory name in search path (BZ 31035)
The open_path stops if a relative path in search path contains a component that is a non directory (for instance, if the component is an existing file). For instance: $ cat > lib.c <<EOF > void foo (void) {} > EOF $ gcc -shared -fPIC -o lib.so lib.c $ cat > main.c <<EOF extern void foo (); int main () { foo (); return 0; } EOF $ gcc -o main main.c lib.so $ LD_LIBRARY_PATH=. ./main $ LD_LIBRARY_PATH=non-existing/path:. ./main $ LD_LIBRARY_PATH=$(pwd)/main:. ./main $ LD_LIBRARY_PATH=./main:. ./main ./main: error while loading shared libraries: lib.so: cannot open shared object file: No such file or directory The invalid './main' should be ignored as a non-existent one, instead as a valid but non accessible file. Absolute paths do not trigger this issue because their status are initialized as 'unknown' and open_path check if this is a directory. Checked on x86_64-linux-gnu. Reviewed-by: Szabolcs Nagy <szabolcs.nagy@arm.com>
Diffstat (limited to 'htl')
0 files changed, 0 insertions, 0 deletions