local-ldd
authorGNU Libc Maintainers <debian-glibc@lists.debian.org>
Tue, 4 Oct 2022 05:07:58 +0000 (06:07 +0100)
committerAurelien Jarno <aurel32@debian.org>
Tue, 4 Oct 2022 05:07:58 +0000 (06:07 +0100)
2013-05-11  Aurelien Jarno  <aurelien@aurel32.net>

* elf/ldd.bash.in: Verify the dynamic linker is working before
using it.

Gbp-Pq: Topic all
Gbp-Pq: Name local-ldd.diff

elf/ldd.bash.in

index 3253b32ef81d325e0028cd054611c297f1f1ba1a..f3f41f03a8d6dd45e3b93cfb5a17a990799424f3 100644 (file)
@@ -150,17 +150,18 @@ for file do
     echo "ldd: ${file}:" $"not regular file" >&2
     result=1
   elif test -r "$file"; then
-    test -x "$file" || echo 'ldd:' $"\
-warning: you do not have execution permission for" "\`$file'" >&2
     RTLD=
     ret=1
     for rtld in ${RTLDLIST}; do
       if test -x $rtld; then
-       verify_out=`${rtld} --verify "$file"`
-       ret=$?
-       case $ret in
-       [02]) RTLD=${rtld}; break;;
-       esac
+       dummy=`$rtld --version 2>&1`
+       if test $? = 0; then
+         verify_out=`${rtld} --verify "$file"`
+         ret=$?
+         case $ret in
+         [02]) RTLD=${rtld}; break;;
+         esac
+       fi
       fi
     done
     case $ret in