← Commit list

4709df0f1

Denys Vlasenko
Denys Vlasenko
2018-04-10
SUCCESS Duration: 144s

Subject

hush: fix handling of \ in double-quoted strings

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

shell/hush.c+6 -5
@@ -4913,11 +4913,12 @@ static int encode_string(o_string *as_string,
ch, ch, !!(dest->o_expflags & EXP_FLAG_ESC_GLOB_CHARS));
if (process_bkslash && ch == '\\') {
if (next == EOF) {
-// TODO: what if in interactive shell a file with
-// echo "unterminated string\<eof>
-// is sourced?
- syntax_error("\\<eof>");
- xfunc_die();
+ /* Testcase: in interactive shell a file with
+ * echo "unterminated string\<eof>
+ * is sourced.
+ */
+ syntax_error_unterm_ch('"');
+ return 0; /* error */
}
/* bash:
* "The backslash retains its special meaning [in "..."]
shell/hush_test/hush-parsing/bkslash_eof2.right+2 -0
@@ -0,0 +1,2 @@
+hush: syntax error: unterminated "
+One:1
shell/hush_test/hush-parsing/bkslash_eof2.tests+4 -0
@@ -0,0 +1,4 @@
+printf 'echo "unterminated string\\' >test.tmp.sh
+. ./test.tmp.sh
+echo One:$?
+rm -f test.tmp.sh