summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Zakrzewski <slither.jz@gmail.com>2019-04-06 13:48:18 +0200
committerDaniel Stenberg <daniel@haxx.se>2019-04-07 22:57:42 +0200
commit0dd47c2a3d53b1297be3534f8c09d3b86564d3db (patch)
tree9e9378296818a9ad13a2a8771e9ce24c0f6f102c
parent64cbae31078b2b64818a1d793516fbe73a7e4c45 (diff)
downloadcurl-0dd47c2a3d53b1297be3534f8c09d3b86564d3db.tar.gz
urlapi: urlencode characters above 0x7f correctly
fixes #3741 Closes #3742
-rw-r--r--lib/urlapi.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/urlapi.c b/lib/urlapi.c
index a19867eb0..04b04923e 100644
--- a/lib/urlapi.c
+++ b/lib/urlapi.c
@@ -1273,7 +1273,7 @@ CURLUcode curl_url_set(CURLU *u, CURLUPart what,
size_t nalloc = strlen(part);
if(urlencode) {
- const char *i;
+ const unsigned char *i;
char *o;
bool free_part = FALSE;
char *enc = malloc(nalloc * 3 + 1); /* for worst case! */
@@ -1281,7 +1281,7 @@ CURLUcode curl_url_set(CURLU *u, CURLUPart what,
return CURLUE_OUT_OF_MEMORY;
if(plusencode) {
/* space to plus */
- i = part;
+ i = (const unsigned char *)part;
for(o = enc; *i; ++o, ++i)
*o = (*i == ' ') ? '+' : *i;
*o = 0; /* zero terminate */
@@ -1292,7 +1292,7 @@ CURLUcode curl_url_set(CURLU *u, CURLUPart what,
}
free_part = TRUE;
}
- for(i = part, o = enc; *i; i++) {
+ for(i = (const unsigned char *)part, o = enc; *i; i++) {
if(Curl_isunreserved(*i) ||
((*i == '/') && urlskipslash) ||
((*i == '=') && equalsencode) ||