about summary refs log tree commit diff
path: root/pkgs/stdenv
diff options
context:
space:
mode:
authorJohn Ericson <Ericson2314@yahoo.com>2017-07-07 12:48:51 -0400
committerGitHub <noreply@github.com>2017-07-07 12:48:51 -0400
commitf5364122b5904fd1b6048cb9d564b9194c0d3845 (patch)
tree2079a9484bda7c61f980956fe4cf82f0fbe5d60f /pkgs/stdenv
parent21ef8d5c89281a71750cdf51ef7c8d69c52b63ed (diff)
parente57a220f810a9698c5df27a7488839ebea3226e2 (diff)
downloadnixlib-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.sh12
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"