X-Git-Url: https://git.octo.it/?p=collection4.git;a=blobdiff_plain;f=src%2Futils_cgi.c;h=475e14e4361427c394b946cce756dc13c35dd8ce;hp=785191422c9e449a2d85995581a53675dbf3f26a;hb=551bbc6b3aaa1c7adfc513a31e9abee13aeb36d5;hpb=cc5ecbf3e8768c8a69e22df3e6a73ef3d57d9b9e diff --git a/src/utils_cgi.c b/src/utils_cgi.c index 7851914..475e14e 100644 --- a/src/utils_cgi.c +++ b/src/utils_cgi.c @@ -433,10 +433,16 @@ char *uri_escape_copy (char *dest, const char *src, size_t n) /* {{{ */ } else if ((((unsigned char) src[in]) < 32) || (src[in] == ' ') - || (src[in] == '&') - || (src[in] == ';') - || (src[in] == '?') - || (src[in] == '/') + /* RFC 3986, gen-delims */ + || (src[in] == ':') || (src[in] == '/') || (src[in] == '?') + || (src[in] == '#') || (src[in] == '[') || (src[in] == ']') + || (src[in] == '@') + /* RFC 3986, sub-delims */ + || (src[in] == '!') || (src[in] == '$') || (src[in] == '&') + || (src[in] == '(') || (src[in] == ')') || (src[in] == '*') + || (src[in] == '+') || (src[in] == ',') || (src[in] == ';') + || (src[in] == '=') || (src[in] == '\'') + /* 8-bit data */ || (((unsigned char) src[in]) >= 128)) { char esc[4];