From 6a43d0d74211bd640990d1498570466b4ac65f0b Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sat, 30 Mar 2024 22:56:48 +0100 Subject: [PATCH] idn: make Curl_idnconvert_hostname() use Curl_idn_decode() In the name of less code duplication Closes #13236 --- lib/idn.c | 23 +++++------------------ lib/idn.h | 5 ----- 2 files changed, 5 insertions(+), 23 deletions(-) diff --git a/lib/idn.c b/lib/idn.c index 81a177f8cf..3890b0b06b 100644 --- a/lib/idn.c +++ b/lib/idn.c @@ -246,11 +246,7 @@ CURLcode Curl_idn_encode(const char *puny, char **output) */ void Curl_free_idnconverted_hostname(struct hostname *host) { - if(host->encalloc) { - /* must be freed with idn2_free() if allocated by libidn */ - Curl_idn_free(host->encalloc); - host->encalloc = NULL; - } + Curl_safefree(host->encalloc); } #endif /* USE_IDN */ @@ -267,20 +263,11 @@ CURLcode Curl_idnconvert_hostname(struct hostname *host) /* Check name for non-ASCII and convert hostname if we can */ if(!Curl_is_ASCII_name(host->name)) { char *decoded; - CURLcode result = idn_decode(host->name, &decoded); - if(!result) { - if(!*decoded) { - /* zero length is a bad host name */ - Curl_idn_free(decoded); - return CURLE_URL_MALFORMAT; - } - /* successful */ - host->encalloc = decoded; - /* change the name pointer to point to the encoded hostname */ - host->name = host->encalloc; - } - else + CURLcode result = Curl_idn_decode(host->name, &decoded); + if(result) return result; + /* successful */ + host->name = host->encalloc = decoded; } #endif return CURLE_OK; diff --git a/lib/idn.h b/lib/idn.h index 74bbcaf498..e75124ef9f 100644 --- a/lib/idn.h +++ b/lib/idn.h @@ -31,11 +31,6 @@ CURLcode Curl_idnconvert_hostname(struct hostname *host); void Curl_free_idnconverted_hostname(struct hostname *host); CURLcode Curl_idn_decode(const char *input, char **output); CURLcode Curl_idn_encode(const char *input, char **output); -#ifdef USE_LIBIDN2 -#define Curl_idn_free(x) idn2_free(x) -#else -#define Curl_idn_free(x) free(x) -#endif #else #define Curl_free_idnconverted_hostname(x) -- 2.47.3