diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2011-03-10 20:59:46 +0800 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2011-03-10 20:59:46 +0800 |
commit | 54413164e587dd2dc5d7bce0bd3fab61d7ba758c (patch) | |
tree | eee570d39af410e50f18528dbdc69f8f245e4d6d | |
parent | [SHELL] Port to AIX (diff) | |
download | dash-54413164e587dd2dc5d7bce0bd3fab61d7ba758c.tar.gz dash-54413164e587dd2dc5d7bce0bd3fab61d7ba758c.zip |
[BUILTIN] Fix CTLESC clobbering by read(1)
The changeset 55c46b7286f5d9f2d8291158203e2b61d2494420 [BUILTIN] Honor tab as IFS whitespace when splitting fields in readcmd uses CTLESC to prevent field splitting in read(1). However, it did not escape CTLESC itself in the input stream. This patch adds the necessary CTLESC characters so that CTLESC isn't corrupted. Reported-by: Alexey Gladkov <gladkov.alexey@gmail.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | src/miscbltin.c | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index 173f057..6d02fa9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2011-03-10 Herbert Xu <herbert@gondor.apana.org.au> + + * Fix CTLESC clobbering by read(1). + 2011-03-10 Brian Koropoff <bkoropoff@gmail.com> * Port to AIX. diff --git a/src/miscbltin.c b/src/miscbltin.c index 653c92f..800cbbb 100644 --- a/src/miscbltin.c +++ b/src/miscbltin.c @@ -178,7 +178,7 @@ readcmd(int argc, char **argv) } if (c == '\0') continue; - if (backslash) { + if (backslash || c == CTLESC) { if (c == '\n') goto resetbs; STPUTC(CTLESC, p); |