From 5b511b0958f06f72c99494364cbb8f33c4900dd4 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Thu, 12 Jul 2018 11:44:57 +0200 Subject: 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 --- lib/smb.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'lib/smb.c') 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; } -- cgit v1.2.3