summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2011-03-10 20:59:46 +0800
committerHerbert Xu <herbert@gondor.apana.org.au>2011-03-10 20:59:46 +0800
commit54413164e587dd2dc5d7bce0bd3fab61d7ba758c (patch)
treeeee570d39af410e50f18528dbdc69f8f245e4d6d /src
parent[SHELL] Port to AIX (diff)
downloaddash-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>
Diffstat (limited to 'src')
-rw-r--r--src/miscbltin.c2
1 files changed, 1 insertions, 1 deletions
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);