[PATCH v2] elf: Handle non-directory name in search path (BZ 31035)

Szabolcs Nagy szabolcs.nagy@arm.com
Thu Nov 16 12:38:29 GMT 2023


The 11/15/2023 10:38, Adhemerval Zanella wrote:
> The open_path stops if a relative path in search patch contains a

s/patch/path/

> 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 and a non-existent one,

s/and/as/

> instead as a valid but non acessible file.

s/acessible/accessible/

> 
> Aboslute pathd do not triger this issue because its status are

s/Aboslute/Absolute/
s/pathd/paths/
s/triger/trigger/
s/its/their/

> initialized as 'unknown' and open_path check if this is a directory.
> 
> Checked on x86_64-linux-gnu.

looks good with typos fixed.

Reviewed-by: Szabolcs Nagy <szabolcs.nagy@arm.com>



More information about the Libc-alpha mailing list