diff options
author | John Ericson <Ericson2314@yahoo.com> | 2017-07-07 12:48:51 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-07 12:48:51 -0400 |
commit | f5364122b5904fd1b6048cb9d564b9194c0d3845 (patch) | |
tree | 2079a9484bda7c61f980956fe4cf82f0fbe5d60f /pkgs/stdenv | |
parent | 21ef8d5c89281a71750cdf51ef7c8d69c52b63ed (diff) | |
parent | e57a220f810a9698c5df27a7488839ebea3226e2 (diff) | |
download | nixlib-f5364122b5904fd1b6048cb9d564b9194c0d3845.tar nixlib-f5364122b5904fd1b6048cb9d564b9194c0d3845.tar.gz nixlib-f5364122b5904fd1b6048cb9d564b9194c0d3845.tar.bz2 nixlib-f5364122b5904fd1b6048cb9d564b9194c0d3845.tar.lz nixlib-f5364122b5904fd1b6048cb9d564b9194c0d3845.tar.xz nixlib-f5364122b5904fd1b6048cb9d564b9194c0d3845.tar.zst nixlib-f5364122b5904fd1b6048cb9d564b9194c0d3845.zip |
Merge pull request #27215 from obsidiansystems/stdenv-harden
Harden stdenv in two misc ways
Diffstat (limited to 'pkgs/stdenv')
-rw-r--r-- | pkgs/stdenv/generic/setup.sh | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh index eb63b18e5f3d..e5d2ba8682de 100644 --- a/pkgs/stdenv/generic/setup.sh +++ b/pkgs/stdenv/generic/setup.sh @@ -17,8 +17,9 @@ runHook() { shift local var="$hookName" if [[ "$hookName" =~ Hook$ ]]; then var+=s; else var+=Hooks; fi - eval "local -a dummy=(\"\${$var[@]}\")" - for hook in "_callImplicitHook 0 $hookName" "${dummy[@]}"; do + local -n var + local hook + for hook in "_callImplicitHook 0 $hookName" "${var[@]}"; do _eval "$hook" "$@" done return 0 @@ -32,8 +33,9 @@ runOneHook() { shift local var="$hookName" if [[ "$hookName" =~ Hook$ ]]; then var+=s; else var+=Hooks; fi - eval "local -a dummy=(\"\${$var[@]}\")" - for hook in "_callImplicitHook 1 $hookName" "${dummy[@]}"; do + local -n var + local hook + for hook in "_callImplicitHook 1 $hookName" "${var[@]}"; do if _eval "$hook" "$@"; then return 0 fi @@ -192,6 +194,7 @@ _addRpathPrefix() { # Return success if the specified file is an ELF object. isELF() { local fn="$1" + local fd local magic exec {fd}< "$fn" read -n 4 -u $fd magic @@ -203,6 +206,7 @@ isELF() { # "#!"). isScript() { local fn="$1" + local fd local magic if ! [ -x /bin/sh ]; then return 0; fi exec {fd}< "$fn" |