diff options
author | Alexander Smirnov <alex@ydb.tech> | 2024-10-16 12:11:24 +0000 |
---|---|---|
committer | Alexander Smirnov <alex@ydb.tech> | 2024-10-16 12:11:24 +0000 |
commit | 40811e93f3fdf9342a9295369994012420fac548 (patch) | |
tree | a8d85e094a9c21e10aa250f537c101fc2016a049 /contrib/libs/curl/lib/escape.c | |
parent | 30ebe5357bb143648c6be4d151ecd4944af81ada (diff) | |
parent | 28a0c4a9f297064538a018c512cd9bbd00a1a35d (diff) | |
download | ydb-40811e93f3fdf9342a9295369994012420fac548.tar.gz |
Merge branch 'rightlib' into mergelibs-241016-1210
Diffstat (limited to 'contrib/libs/curl/lib/escape.c')
-rw-r--r-- | contrib/libs/curl/lib/escape.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/contrib/libs/curl/lib/escape.c b/contrib/libs/curl/lib/escape.c index 9b6edb4433..5af00c3514 100644 --- a/contrib/libs/curl/lib/escape.c +++ b/contrib/libs/curl/lib/escape.c @@ -60,18 +60,17 @@ char *curl_easy_escape(struct Curl_easy *data, const char *string, struct dynbuf d; (void)data; - if(!string || (inlength < 0)) + if(inlength < 0) return NULL; + Curl_dyn_init(&d, CURL_MAX_INPUT_LENGTH * 3); + length = (inlength?(size_t)inlength:strlen(string)); if(!length) return strdup(""); - Curl_dyn_init(&d, length * 3 + 1); - while(length--) { - /* treat the characters unsigned */ - unsigned char in = (unsigned char)*string++; + unsigned char in = *string++; /* treat the characters unsigned */ if(ISUNRESERVED(in)) { /* append this */ @@ -138,7 +137,7 @@ CURLcode Curl_urldecode(const char *string, size_t length, *ostring = ns; while(alloc) { - unsigned char in = (unsigned char)*string; + unsigned char in = *string; if(('%' == in) && (alloc > 2) && ISXDIGIT(string[1]) && ISXDIGIT(string[2])) { /* this is two hexadecimal digits following a '%' */ @@ -158,7 +157,7 @@ CURLcode Curl_urldecode(const char *string, size_t length, return CURLE_URL_MALFORMAT; } - *ns++ = (char)in; + *ns++ = in; } *ns = 0; /* terminate it */ @@ -181,7 +180,7 @@ char *curl_easy_unescape(struct Curl_easy *data, const char *string, { char *str = NULL; (void)data; - if(string && (length >= 0)) { + if(length >= 0) { size_t inputlen = (size_t)length; size_t outputlen; CURLcode res = Curl_urldecode(string, inputlen, &str, &outputlen, @@ -223,8 +222,8 @@ void Curl_hexencode(const unsigned char *src, size_t len, /* input length */ while(len-- && (olen >= 3)) { /* clang-tidy warns on this line without this comment: */ /* NOLINTNEXTLINE(clang-analyzer-core.UndefinedBinaryOperatorResult) */ - *out++ = (unsigned char)hex[(*src & 0xF0)>>4]; - *out++ = (unsigned char)hex[*src & 0x0F]; + *out++ = hex[(*src & 0xF0)>>4]; + *out++ = hex[*src & 0x0F]; ++src; olen -= 2; } |