From: Denys Vlasenko Date: Mon, 25 Oct 2010 10:14:21 +0000 (+0200) Subject: libbb/process_escape_sequence.c: fix recently broken handling of \\ X-Git-Tag: 1_18_0~72 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=a2d27a19197cc5ed787dc2439df0cae58053ea2c;p=oweals%2Fbusybox.git libbb/process_escape_sequence.c: fix recently broken handling of \\ Signed-off-by: Denys Vlasenko --- diff --git a/libbb/process_escape_sequence.c b/libbb/process_escape_sequence.c index 7b1d97f9c..346ecfa1e 100644 --- a/libbb/process_escape_sequence.c +++ b/libbb/process_escape_sequence.c @@ -75,8 +75,8 @@ char FAST_FUNC bb_process_escape_sequence(const char **ptr) * Manpages tend to support coreutils way. * Update: coreutils added support for \e on 28 Oct 2009. */ static const char charmap[] ALIGN1 = { - 'a', 'b', 'e', 'f', 'n', 'r', 't', 'v', '\\', - '\a', '\b', 27, '\f', '\n', '\r', '\t', '\v', '\\', + 'a', 'b', 'e', 'f', 'n', 'r', 't', 'v', '\\', '\0', + '\a', '\b', 27, '\f', '\n', '\r', '\t', '\v', '\\', '\\', }; const char *p = charmap; do { @@ -84,8 +84,8 @@ char FAST_FUNC bb_process_escape_sequence(const char **ptr) q++; break; } - } while (*++p != '\\'); - /* p points to found escape char or '\', + } while (*++p != '\0'); + /* p points to found escape char or NUL, * advance it and find what it translates to. * Note that \NUL and unrecognized sequence \z return '\' * and leave ptr pointing to NUL or z. */