From dd7ab91f97547a12420af6cb51e5b60c41c074a5 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 25 Apr 2018 13:40:48 -0400 Subject: [PATCH] runshell: Unset LD_PRELOAD Preloaded libraries from the host system may not get along with the bundled linker. This was observed by users in termux: ERROR: ld.so: object '/data/data/com.termux/files/usr/lib/libtermux-exec.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. Bad system call But it could also affect more usual systems; the preloaded library might rely on symbols from the host libc that are not available or have the wrong versions in the bundled libc. Unsetting LD_PRELOAD entirely seems safest. --- CHANGELOG | 2 ++ standalone/linux/skel/runshell | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index 1bf9cc86ff..ad8153d647 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -12,6 +12,8 @@ git-annex (6.20180410) UNRELEASED; urgency=medium * Fix build with yesod 1.6. * Clean up some build warnings with newer versions of ghc and haskell libraries. + * runshell: Unset LD_PRELOAD since preloaded libraries from the host + system may not get along with the bundled linker. -- Joey Hess Mon, 09 Apr 2018 14:03:28 -0400 diff --git a/standalone/linux/skel/runshell b/standalone/linux/skel/runshell index 4b586d5fdf..dc0a2b64fd 100755 --- a/standalone/linux/skel/runshell +++ b/standalone/linux/skel/runshell @@ -121,6 +121,10 @@ export ORIG_LOCPATH LOCPATH="$base/locales" export LOCPATH +# LD_PRELOAD may interact badly with the bundled libc and other libraries, +# which may have a different subarchitecture than the preloaded library. +unset LD_PRELOAD + # Generate locale definition files for the locales in use, # using the localedef and locale files from the bundle. # Currently only utf-8 locales are handled.