diff options
author | Denys Vlasenko | 2016-09-20 17:04:09 +0200 |
---|---|---|
committer | Denys Vlasenko | 2016-09-20 17:04:09 +0200 |
commit | 244fdd45c798477d6ee2e221a8c2473647b402d6 (patch) | |
tree | 007340b0eb9add53ab4b4fda7de808fa204375d3 /shell | |
parent | d6a37d86ba65ce3d43600bfc52f7ba56de68942d (diff) | |
download | busybox-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.c | 3 |
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; } } |