diff options
Diffstat (limited to 'libs/sgi-webuci/boa-patches/060-buffer_escape.patch')
-rw-r--r-- | libs/sgi-webuci/boa-patches/060-buffer_escape.patch | 26 |
1 files changed, 0 insertions, 26 deletions
diff --git a/libs/sgi-webuci/boa-patches/060-buffer_escape.patch b/libs/sgi-webuci/boa-patches/060-buffer_escape.patch deleted file mode 100644 index 570c254e1..000000000 --- a/libs/sgi-webuci/boa-patches/060-buffer_escape.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/src/buffer.c b/src/buffer.c -index 99f3e7c..6720e21 100644 ---- a/src/buffer.c -+++ b/src/buffer.c -@@ -77,6 +77,7 @@ int req_write_escape_http(request * req, const char *msg) - char c, *dest; - const char *inp; - -+ int skip = 0; - int left; - inp = msg; - dest = req->buffer + req->buffer_end; -@@ -84,7 +85,12 @@ int req_write_escape_http(request * req, const char *msg) - * in the middle of a transfer of up to 3 bytes */ - left = BUFFER_SIZE - req->buffer_end; - while ((c = *inp++) && left >= 3) { -- if (needs_escape((unsigned int) c)) { -+ /* Lower the skip character count. */ -+ if (skip) skip--; -+ /* If we have a '%', we skip the two follow characters. */ -+ if (c == '%') skip = 2; -+ -+ if (!skip && needs_escape((unsigned int) c)) { - *dest++ = '%'; - *dest++ = INT_TO_HEX((c >> 4) & 0xf); - *dest++ = INT_TO_HEX(c & 0xf); |