]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
[MINOR] show errors: encode backslash as well as non-ascii characters
authorWilly Tarreau <w@1wt.eu>
Thu, 12 Mar 2009 07:18:33 +0000 (08:18 +0100)
committerWilly Tarreau <w@1wt.eu>
Thu, 12 Mar 2009 07:18:33 +0000 (08:18 +0100)
These ones were not properly encoded, causing confusion on the output.

src/dumpstats.c

index f81dc7c8a96f74a9615286dabf57eeb69f7f88e9..990e51f8945f113b746e1822fffb1664375dee0d 100644 (file)
@@ -1262,11 +1262,11 @@ static int dump_error_line(struct chunk *out, int size,
 
        while (ptr < err->len) {
                c = err->buf[ptr];
-               if (isprint(c)) {
+               if (isprint(c) && isascii(c) && c != '\\') {
                        if (out->len > end - 2)
                                break;
                        out->str[out->len++] = c;
-               } else if (c == '\t' || c == '\n' || c == '\r' || c == '\e') {
+               } else if (c == '\t' || c == '\n' || c == '\r' || c == '\e' || c == '\\') {
                        if (out->len > end - 3)
                                break;
                        out->str[out->len++] = '\\';
@@ -1275,6 +1275,7 @@ static int dump_error_line(struct chunk *out, int size,
                        case '\n': c = 'n'; break;
                        case '\r': c = 'r'; break;
                        case '\e': c = 'e'; break;
+                       case '\\': c = '\\'; break;
                        }
                        out->str[out->len++] = c;
                } else {