[PATCH] scripts: decode_stacktrace: preserve input while reading lines
From: Hamdy Abou El Anein
Date: Tue Nov 03 2026 - 12:20:56 EST
From: Hamdy Abou El Anein <hamdy.aea@xxxxxxxxxxxxxx>
Plain read strips leading and trailing whitespace and interprets
backslashes before the decoder sees a line. It also drops a final line
without a newline. This loses log text and defeats the alignment
preservation in handle_line().
Read with an empty IFS and -r, and process a nonempty final fragment.
Tested passthrough text with indentation, backslashes and trailing
spaces, plus a real debug-enabled object and stack entries terminated
by LF, CRLF or EOF. All three stack entries decode with their original
indentation.
AI assistance: ChatGPT/Codex identified the issue and prepared the
change, commit message and executable regression tests.
Fixes: dbd1abb20971 ("decode_stacktrace: make stack dump output useful again")
Signed-off-by: Hamdy Abou El Anein <hamdy.aea@xxxxxxxxxxxxxx>
---
scripts/decode_stacktrace.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/decode_stacktrace.sh b/scripts/decode_stacktrace.sh
index 39d60d477bf..8b06810d463 100755
--- a/scripts/decode_stacktrace.sh
+++ b/scripts/decode_stacktrace.sh
@@ -346,7 +346,7 @@ handle_line() {
echo "${spaces[$last]}${symbol}${module:+ ${module}}${info_str:+ ${info_str}}"
}
-while read line; do
+while IFS= read -r line || [[ -n $line ]]; do
# Strip unexpected carriage return at end of line
line=${line%$'\r'}