From: Timo Sirainen Date: Sun, 27 Jul 2003 01:50:32 +0000 (+0300) Subject: unescaping was broken X-Git-Tag: 1.1.alpha1~4455 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=06843a896589e98fb259e6d7558326655126a407;p=thirdparty%2Fdovecot%2Fcore.git unescaping was broken --HG-- branch : HEAD --- diff --git a/src/lib/strescape.c b/src/lib/strescape.c index a23a729a80..39636fb9ee 100644 --- a/src/lib/strescape.c +++ b/src/lib/strescape.c @@ -65,7 +65,7 @@ void str_append_unescaped(string_t *dest, const void *src, size_t src_size) str_append_n(dest, src_c + start, i-start); - if (src_c[i] == '\\') + if (i < src_size) i++; start = i; } @@ -83,8 +83,10 @@ char *str_unescape(char *str) } for (dest = str; *str != '\0'; str++) { - if (*str != '\\' || str[1] == '\0') - *dest++ = *str; + if (*str == '\\' && str[1] != '\0') + str++; + + *dest++ = *str; } *dest = '\0';