summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDan Fandrich <dan@coneharvesters.com>2023-02-06 10:40:59 -0800
committerDaniel Stenberg <daniel@haxx.se>2023-02-07 08:20:19 +0100
commitdf3722a46c678b5c54b3df1154c1d109ad4cb6e5 (patch)
tree1bcb1cc0539070dc9cdfc6a7831248622ba22871 /src
parent349c5391f2121ee0338dcf5a61dafde7bc83be57 (diff)
downloadcurl-df3722a46c678b5c54b3df1154c1d109ad4cb6e5.tar.gz
tool_operate: Fix error codes during DOS filename sanitize
It would return CURLE_URL_MALFORMAT in an OOM condition. Closes #10414
Diffstat (limited to 'src')
-rw-r--r--src/tool_operhlp.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/tool_operhlp.c b/src/tool_operhlp.c
index 02039413c..f11d65a94 100644
--- a/src/tool_operhlp.c
+++ b/src/tool_operhlp.c
@@ -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