summaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
authorDenys Vlasenko2016-09-20 17:04:09 +0200
committerDenys Vlasenko2016-09-20 17:04:09 +0200
commit244fdd45c798477d6ee2e221a8c2473647b402d6 (patch)
tree007340b0eb9add53ab4b4fda7de808fa204375d3 /shell
parentd6a37d86ba65ce3d43600bfc52f7ba56de68942d (diff)
downloadbusybox-244fdd45c798477d6ee2e221a8c2473647b402d6.zip
busybox-244fdd45c798477d6ee2e221a8c2473647b402d6.tar.gz
ash: fix handling of bashism $'xxx' with high-bit chars. Closes 9236
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell')
-rw-r--r--shell/ash.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/shell/ash.c b/shell/ash.c
index a885514..d96e568 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -11229,6 +11229,9 @@ readtoken1(int c, int syntax, char *eofmark, int striptabs)
c = decode_dollar_squote();
if (c & 0x100) {
USTPUTC('\\', out);
+ if (eofmark == NULL || dblquote)
+ /* Or else this SEGVs: $'\<0x82>' */
+ USTPUTC(CTLESC, out);
c = (unsigned char)c;
}
}