From 6a6d4880d6b576055d3088a298a1715d2b556a60 Mon Sep 17 00:00:00 2001 From: Karsten Weiss Date: Wed, 14 Sep 2016 12:16:37 +0200 Subject: [PATCH] run_application_banner(): Fix modified in subshell bug. Refactor the while loop so it doesn't use a subshell anymore. Also use "read -r" to prevent backslash escaping. ``` In testssl.sh line 1193: app_banners="$app_bannersline" ^-- SC2030: Modification of app_banners is local (to subshell caused by pipeline). In testssl.sh line 1195: fileout "app_banner" "WARN" "Application Banners found: $app_banners" ^-- SC2031: app_banners was modified in a subshell. That change might be lost. ``` Found by ShellCheck. --- testssl.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/testssl.sh b/testssl.sh index fdf2f21..8ae0b3a 100755 --- a/testssl.sh +++ b/testssl.sh @@ -1182,7 +1182,7 @@ run_application_banner() { outln "--" fileout "app_banner" "INFO" "No Application Banners found" else - cat $TMPFILE | while read line; do + while IFS='' read -r line; do line=$(strip_lf "$line") if ! $first; then out "$spaces" @@ -1191,7 +1191,7 @@ run_application_banner() { fi emphasize_stuff_in_headers "$line" app_banners="${app_banners}${line}" - done + done < "$TMPFILE" fileout "app_banner" "WARN" "Application Banners found: $app_banners" fi tmpfile_handle $FUNCNAME.txt