[PATCH] [BUILTIN] Fix corruption of reads with byte 0x81

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Starting with commit 55c46b dash removes CTLESC bytes ('\x81')
from read sequence. This leads to breakage of some UTF8
characters. Like in commit f8231a, this change fixes corruption
by removing the faulty code.

Testcase:

$ /usr/bin/printf '[\u0441]\n'
[Ñ]
$ /usr/bin/printf '[\u0441]\n' |dash -c 'read c; printf "%s\n" "$c"'
[Ã]

Signed-off-by: Alexey Gladkov <gladkov.alexey@xxxxxxxxx>
---
 src/miscbltin.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/src/miscbltin.c b/src/miscbltin.c
index 653c92f..4e88e8d 100644
--- a/src/miscbltin.c
+++ b/src/miscbltin.c
@@ -112,14 +112,12 @@ readcmd_handle_line(char *line, char **ap, size_t len)
 			 * will not modify the length of the string */
 			offset = sl->text - s;
 			remainder = backup + offset;
-			rmescapes(remainder);
 			setvar(*ap, remainder, 0);
 
 			return;
 		}
 		
 		/* set variable to field */
-		rmescapes(sl->text);
 		setvar(*ap, sl->text, 0);
 		sl = sl->next;
 	} while (*++ap);
-- 
1.7.3.5

--
To unsubscribe from this list: send the line "unsubscribe dash" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux