From 09363500b9e161670b6bd084cc57bff75d32fc02 Mon Sep 17 00:00:00 2001 From: Jay Satiro Date: Sat, 13 Feb 2021 00:51:28 -0500 Subject: curl_multibyte: always return a heap-allocated copy of string - Change the Windows char <-> UTF-8 conversion functions to return an allocated copy of the passed in string instead of the original. Prior to this change the curlx_convert_ functions would, as what I assume was an optimization, not make a copy of the passed in string if no conversion was required. No conversion is required in non-UNICODE Windows builds since our tchar strings are type char and remain in whatever the passed in encoding is, which is assumed to be UTF-8 but may be other encoding. In contrast the UNICODE Windows builds require conversion (wchar <-> char) and do return a copy. That inconsistency could lead to programming errors where the developer expects a copy, and does not realize that won't happen in all cases. Closes https://github.com/curl/curl/pull/6602 --- lib/curl_multibyte.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'lib/curl_multibyte.c') diff --git a/lib/curl_multibyte.c b/lib/curl_multibyte.c index 39b2c587c..a7ae47d7e 100644 --- a/lib/curl_multibyte.c +++ b/lib/curl_multibyte.c @@ -21,7 +21,11 @@ ***************************************************************************/ /* - * This file is 'mem-include-scan' clean. See test 1132. + * This file is 'mem-include-scan' clean, which means memdebug.h and + * curl_memory.h are purposely not included in this file. See test 1132. + * + * The functions in this file are curlx functions which are not tracked by the + * curl memory tracker memdebug. */ #include "curl_setup.h" -- cgit v1.2.1