summary refs log tree commit diff
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2020-05-26 23:19:05 +1000
committerHerbert Xu <herbert@gondor.apana.org.au>2020-06-01 23:12:53 +1000
commite8e29001ad1cdeb68a5c617db149830e676c32c8 (patch)
tree09db2f86070e05506404abbf5a55ec7a0a1c6b8f
parentshell: Fix typos (diff)
downloaddash-e8e29001ad1cdeb68a5c617db149830e676c32c8.tar.gz
dash-e8e29001ad1cdeb68a5c617db149830e676c32c8.zip
parser: Fix double-backslash nl in old-style command sub
When handling backslashes within an old-style command substitution,
we should not call pgetc_eatbnl because that would treat the next
backslash character as another escape character if it was then
followed by a new-line.

This patch fixes it by calling pgetc.

Reported-by: Matt Whitlock <dash@mattwhitlock.name>
Fixes: 6bbc71d84bea ("parser: use pgetc_eatbnl() in more places")
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r--src/parser.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/parser.c b/src/parser.c
index 54c2861..a47022e 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -1393,7 +1393,7 @@ parsebackq: {
 				goto done;
 
 			case '\\':
-                                pc = pgetc_eatbnl();
+                                pc = pgetc();
                                 if (pc != '\\' && pc != '`' && pc != '$'
                                     && (!synstack->dblquote || pc != '"'))
                                         STPUTC('\\', pout);