autoPatchelfHook: Only check PT_INTERP on execs
If the ELF file is not an executable, we do not get a PT_INTERP section, because after all, it's a *shared* library. So instead of checking for PT_INTERP (to avoid statically linked executables) for all ELF files, we add another check to see if it's an executable and *only* skip it when it is and there's no PT_INTERP. Signed-off-by: aszlig <aszlig@nix.build>
This commit is contained in:
parent
58a97dfb49
commit
9920215d00
@ -155,8 +155,10 @@ autoPatchelf() {
|
||||
# outside of this function.
|
||||
while IFS= read -r -d $'\0' file; do
|
||||
isELF "$file" || continue
|
||||
# dynamically linked?
|
||||
if isExecutable "$file"; then
|
||||
# Skip if the executable is statically linked.
|
||||
readelf -l "$file" | grep -q "^ *INTERP\\>" || continue
|
||||
fi
|
||||
autoPatchelfFile "$file"
|
||||
done < <(find "$prefix" -type f -print0)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user