diff options
author | Jakub Zakrzewski <slither.jz@gmail.com> | 2019-04-06 13:48:18 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2019-04-07 22:57:42 +0200 |
commit | 0dd47c2a3d53b1297be3534f8c09d3b86564d3db (patch) | |
tree | 9e9378296818a9ad13a2a8771e9ce24c0f6f102c /lib/urlapi.c | |
parent | 64cbae31078b2b64818a1d793516fbe73a7e4c45 (diff) | |
download | curl-0dd47c2a3d53b1297be3534f8c09d3b86564d3db.tar.gz |
urlapi: urlencode characters above 0x7f correctly
fixes #3741
Closes #3742
Diffstat (limited to 'lib/urlapi.c')
-rw-r--r-- | lib/urlapi.c | 6 |
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) || |