]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
tool_operate: Fix error codes during DOS filename sanitize
authorDan Fandrich <dan@coneharvesters.com>
Mon, 6 Feb 2023 18:40:59 +0000 (10:40 -0800)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 7 Feb 2023 07:20:19 +0000 (08:20 +0100)
It would return CURLE_URL_MALFORMAT in an OOM condition.

Closes #10414

src/tool_operhlp.c

index 02039413ca87fb4b8d98d37c2ef65e8efcbc2db0..f11d65a94adb811dad3db26b75d3e6c8ff295adb 100644 (file)
@@ -209,14 +209,17 @@ CURLcode get_url_file_name(char **filename, const char *url)
         return CURLE_OUT_OF_MEMORY;
 
 #if defined(MSDOS) || defined(WIN32)
-    {
-      char *sanitized;
-      SANITIZEcode sc = sanitize_file_name(&sanitized, *filename, 0);
-      Curl_safefree(*filename);
-      if(sc)
-        return CURLE_URL_MALFORMAT;
-      *filename = sanitized;
-    }
+      {
+        char *sanitized;
+        SANITIZEcode sc = sanitize_file_name(&sanitized, *filename, 0);
+        Curl_safefree(*filename);
+        if(sc) {
+          if(sc == SANITIZE_ERR_OUT_OF_MEMORY)
+            return CURLE_OUT_OF_MEMORY;
+          return CURLE_URL_MALFORMAT;
+        }
+        *filename = sanitized;
+      }
 #endif /* MSDOS || WIN32 */
 
       /* in case we built debug enabled, we allow an environment variable