]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
unescaping was broken
authorTimo Sirainen <tss@iki.fi>
Sun, 27 Jul 2003 01:50:32 +0000 (04:50 +0300)
committerTimo Sirainen <tss@iki.fi>
Sun, 27 Jul 2003 01:50:32 +0000 (04:50 +0300)
--HG--
branch : HEAD

src/lib/strescape.c

index a23a729a80bf9ebe073cba98b6e5d2dff832cf74..39636fb9eefd8281666878ad2371fe305f132a64 100644 (file)
@@ -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';