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
This commit is contained in:
Daniel Stenberg 2018-07-12 11:44:57 +02:00
parent 2c33105dbf
commit 5b511b0958
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
1 changed files with 3 additions and 8 deletions

View File

@ -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;
}