about summary refs log tree commit diff
path: root/pkgs/stdenv/generic
diff options
context:
space:
mode:
authoraszlig <aszlig@nix.build>2018-09-23 20:32:19 +0200
committeraszlig <aszlig@nix.build>2018-09-25 06:55:18 +0200
commitb25b6e0c75867cd0ae9866b7a8f0d6e3a4be54d5 (patch)
treef89167a8d757ad22d2ddf38086e292e13ee332cf /pkgs/stdenv/generic
parent2b4b7d4ef3bba661fbafbced814a8b39c65ea81a (diff)
downloadnixlib-b25b6e0c75867cd0ae9866b7a8f0d6e3a4be54d5.tar
nixlib-b25b6e0c75867cd0ae9866b7a8f0d6e3a4be54d5.tar.gz
nixlib-b25b6e0c75867cd0ae9866b7a8f0d6e3a4be54d5.tar.bz2
nixlib-b25b6e0c75867cd0ae9866b7a8f0d6e3a4be54d5.tar.lz
nixlib-b25b6e0c75867cd0ae9866b7a8f0d6e3a4be54d5.tar.xz
nixlib-b25b6e0c75867cd0ae9866b7a8f0d6e3a4be54d5.tar.zst
nixlib-b25b6e0c75867cd0ae9866b7a8f0d6e3a4be54d5.zip
stdenv: Improve ELF detection for isELF
The isELF function only checks whether ELF is contained within the first
4 bytes of the file, which is a bit fuzzy and will also return
successful if it's a text file starting with ELF, for example:

  ELF headers
  -----------

  Some text here about ELF headers...

So instead, we're now doing a precise match on \x7fELF.

Signed-off-by: aszlig <aszlig@nix.build>
Acked-by: @Ericson2314
Closes: https://github.com/NixOS/nixpkgs/pull/47244
Diffstat (limited to 'pkgs/stdenv/generic')
-rw-r--r--pkgs/stdenv/generic/setup.sh2
1 files changed, 1 insertions, 1 deletions
diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh
index 11d0f1fbce43..8af369b1d17d 100644
--- a/pkgs/stdenv/generic/setup.sh
+++ b/pkgs/stdenv/generic/setup.sh
@@ -211,7 +211,7 @@ isELF() {
     exec {fd}< "$fn"
     read -r -n 4 -u "$fd" magic
     exec {fd}<&-
-    if [[ "$magic" =~ ELF ]]; then return 0; else return 1; fi
+    if [ "$magic" = $'\177ELF' ]; then return 0; else return 1; fi
 }
 
 # Return success if the specified file is a script (i.e. starts with