diff options
author | Daniel Stenberg <daniel@haxx.se> | 2018-07-12 11:44:57 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2018-07-12 14:47:11 +0200 |
commit | 5b511b0958f06f72c99494364cbb8f33c4900dd4 (patch) | |
tree | a223591a6bf1fc61d152516b31f6c0f72e8678cf | |
parent | 2c33105dbf146c78a9a9db6867d0644838e92856 (diff) |
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
-rw-r--r-- | lib/smb.c | 11 |
1 files changed, 3 insertions, 8 deletions
@@ -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; } |