local-ldd
authorGNU Libc Maintainers <debian-glibc@lists.debian.org>
Sat, 17 May 2025 15:15:43 +0000 (17:15 +0200)
committerAurelien Jarno <aurel32@debian.org>
Sat, 17 May 2025 15:15:43 +0000 (17:15 +0200)
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 2d3df6e57ede80ecd744aecc95ec585ca1706c57..f7ecdc943f78341f440cb30490ab10f4a3ce72c4 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