Procházet zdrojové kódy

scripts: bundle-libraries.sh: retain preloaded libraries

Since the introduction of fakeroot support, wrapped SDK executables might
be invoked from a shell that has libfakeroot.so preloaded.

Since we're using preloading as well in order to mangle argv[0] when
invoking the shipped ELF interpreter directly, we must take care of
preloading the already preloaded libraries as well, to avoid invoked
programs losing their fakeroot capabilities.

Extend the bundle-libraries.sh script to take any existing $LD_PRELOAD
into account when invoking the target ELF executable with a preloaded
runas.so library.

Signed-off-by: Jo-Philipp Wich <[email protected]>
Jo-Philipp Wich před 5 roky
rodič
revize
10dbdeccfa
1 změnil soubory, kde provedl 1 přidání a 1 odebrání
  1. 1 1
      scripts/bundle-libraries.sh

+ 1 - 1
scripts/bundle-libraries.sh

@@ -186,7 +186,7 @@ for BIN in "$@"; do
 			#!/usr/bin/env bash
 			dir="\$(dirname "\$0")"
 			export RUNAS_ARG0="\$0"
-			export LD_PRELOAD="\$dir/${REL:+$REL/}runas.so"
+			export LD_PRELOAD="\${LD_PRELOAD:+\$LD_PRELOAD:}\$dir/${REL:+$REL/}runas.so"
 			exec "\$dir/${REL:+$REL/}$LDSO" --library-path "\$dir/${REL:+$REL/}" "\$dir/.${BIN##*/}.bin" "\$@"
 		EOF