Merge pull request #27215 from obsidiansystems/stdenv-harden

Harden stdenv in two misc ways

authored by John Ericson and committed by GitHub f5364122 21ef8d5c

+10 -5
+2 -1
pkgs/development/compilers/swift/patches/build-script-pax.patch
··· 1 --- swift/utils/build-script-impl 2017-01-23 12:47:20.401326309 -0600 2 +++ swift-pax/utils/build-script-impl 2017-01-23 13:24:10.339366996 -0600 3 - @@ -1823,6 +1823,16 @@ function set_lldb_xcodebuild_options() { 4 fi 5 } 6 7 +## XXX: Taken from nixpkgs /pkgs/stdenv/generic/setup.sh 8 +isELF() { 9 + local fn="$1" 10 + local magic 11 + exec {fd}< "$fn" 12 + read -n 4 -u $fd magic
··· 1 --- swift/utils/build-script-impl 2017-01-23 12:47:20.401326309 -0600 2 +++ swift-pax/utils/build-script-impl 2017-01-23 13:24:10.339366996 -0600 3 + @@ -1823,6 +1823,17 @@ function set_lldb_xcodebuild_options() { 4 fi 5 } 6 7 +## XXX: Taken from nixpkgs /pkgs/stdenv/generic/setup.sh 8 +isELF() { 9 + local fn="$1" 10 + + local fd 11 + local magic 12 + exec {fd}< "$fn" 13 + read -n 4 -u $fd magic
+8 -4
pkgs/stdenv/generic/setup.sh
··· 17 shift 18 local var="$hookName" 19 if [[ "$hookName" =~ Hook$ ]]; then var+=s; else var+=Hooks; fi 20 - eval "local -a dummy=(\"\${$var[@]}\")" 21 - for hook in "_callImplicitHook 0 $hookName" "${dummy[@]}"; do 22 _eval "$hook" "$@" 23 done 24 return 0 ··· 32 shift 33 local var="$hookName" 34 if [[ "$hookName" =~ Hook$ ]]; then var+=s; else var+=Hooks; fi 35 - eval "local -a dummy=(\"\${$var[@]}\")" 36 - for hook in "_callImplicitHook 1 $hookName" "${dummy[@]}"; do 37 if _eval "$hook" "$@"; then 38 return 0 39 fi ··· 192 # Return success if the specified file is an ELF object. 193 isELF() { 194 local fn="$1" 195 local magic 196 exec {fd}< "$fn" 197 read -n 4 -u $fd magic ··· 203 # "#!"). 204 isScript() { 205 local fn="$1" 206 local magic 207 if ! [ -x /bin/sh ]; then return 0; fi 208 exec {fd}< "$fn"
··· 17 shift 18 local var="$hookName" 19 if [[ "$hookName" =~ Hook$ ]]; then var+=s; else var+=Hooks; fi 20 + local -n var 21 + local hook 22 + for hook in "_callImplicitHook 0 $hookName" "${var[@]}"; do 23 _eval "$hook" "$@" 24 done 25 return 0 ··· 33 shift 34 local var="$hookName" 35 if [[ "$hookName" =~ Hook$ ]]; then var+=s; else var+=Hooks; fi 36 + local -n var 37 + local hook 38 + for hook in "_callImplicitHook 1 $hookName" "${var[@]}"; do 39 if _eval "$hook" "$@"; then 40 return 0 41 fi ··· 194 # Return success if the specified file is an ELF object. 195 isELF() { 196 local fn="$1" 197 + local fd 198 local magic 199 exec {fd}< "$fn" 200 read -n 4 -u $fd magic ··· 206 # "#!"). 207 isScript() { 208 local fn="$1" 209 + local fd 210 local magic 211 if ! [ -x /bin/sh ]; then return 0; fi 212 exec {fd}< "$fn"