From: Daniel Stenberg Date: Thu, 12 Jul 2018 09:44:57 +0000 (+0200) Subject: smb: fix memory-leak in URL parse error path X-Git-Tag: curl-7_61_1~141 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5b511b0958f06f72c99494364cbb8f33c4900dd4;p=curl smb: fix memory-leak in URL parse error path Detected by OSS-Fuzz Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9369 Closes #2740 --- diff --git a/lib/smb.c b/lib/smb.c index 9ac61505c..fad636252 100644 --- a/lib/smb.c +++ b/lib/smb.c @@ -969,11 +969,9 @@ static CURLcode smb_parse_url_path(struct connectdata *conn) /* Parse the path for the share */ req->share = strdup((*path == '/' || *path == '\\') ? path + 1 : path); - if(!req->share) { - free(path); - + free(path); + if(!req->share) return CURLE_OUT_OF_MEMORY; - } slash = strchr(req->share, '/'); if(!slash) @@ -981,8 +979,7 @@ static CURLcode smb_parse_url_path(struct connectdata *conn) /* The share must be present */ if(!slash) { - free(path); - + Curl_safefree(req->share); return CURLE_URL_MALFORMAT; } @@ -995,8 +992,6 @@ static CURLcode smb_parse_url_path(struct connectdata *conn) *slash = '\\'; } - free(path); - return CURLE_OK; }