local-ldd
authorGNU Libc Maintainers <debian-glibc@lists.debian.org>
Sat, 3 Mar 2018 10:47:56 +0000 (10:47 +0000)
committerAurelien Jarno <aurel32@debian.org>
Sat, 3 Mar 2018 10:47:56 +0000 (10:47 +0000)
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 14f9787d1a817a3eedf6e83e94c445d955aea930..eda35e748f192381416046f2ca460ea6d76a025a 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 2>&1` 
+       if test $? = 127; then
+         verify_out=`${rtld} --verify "$file"`
+         ret=$?
+         case $ret in
+         [02]) RTLD=${rtld}; break;;
+         esac
+       fi
       fi
     done
     case $ret in