]> git.ipfire.org Git - people/stevee/network.git/commitdiff
util: Fix cmd function and never leak anything into the environment
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 5 Aug 2017 19:14:23 +0000 (19:14 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 5 Aug 2017 19:14:23 +0000 (19:14 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/functions/functions.util

index d1e2a92b283490d5eb46854cc447704171808b16..80354f4d3778ae63c5a1f0f78e25a551b30f9571 100644 (file)
@@ -476,14 +476,22 @@ cmd() {
 
        log DEBUG "Running command: ${cmd}"
 
-       if ! ${cmd}; then
-               local ret=$?
-
-               log DEBUG "Returned with code '${ret}'"
-               return ${ret}
-       fi
+       env -i -- \
+               HOME="${HOME}" \
+               PATH="${PATH}" \
+               TERM="${TERM}" \
+               ${cmd}
+       local ret=$?
 
-       return ${EXIT_OK}
+       case "${ret}" in
+               ${EXIT_OK})
+                       return ${EXIT_OK}
+                       ;;
+               *)
+                       log DEBUG "Returned with code '${ret}'"
+                       return ${ret}
+                       ;;
+       esac
 }
 
 cmd_quiet() {