diff options
author | Daniel Stenberg <daniel@haxx.se> | 2016-05-15 00:37:36 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2016-05-15 00:37:36 +0200 |
commit | cba962134256e8b17c70dbb543ffcf935d2a53e4 (patch) | |
tree | d23311120c5695cd72fc98764c4052cb1536bbf2 /lib/url.c | |
parent | e1372418cdf49fc46f284387c6abf0649df6cda0 (diff) | |
download | curl-cba962134256e8b17c70dbb543ffcf935d2a53e4.tar.gz |
ftp wildcard: segfault due to init only in multi_perform
The proper FTP wildcard init is now more properly done in Curl_pretransfer()
and the corresponding cleanup in Curl_close().
The previous place of init/cleanup code made the internal pointer to be NULL
when this feature was used with the multi_socket() API, as it was made within
the curl_multi_perform() function.
Reported-by: Jonathan Cardoso Machado
Fixes #800
Diffstat (limited to 'lib/url.c')
-rw-r--r-- | lib/url.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -484,6 +484,12 @@ CURLcode Curl_close(struct SessionHandle *data) Curl_share_unlock(data, CURL_LOCK_DATA_SHARE); } + if(data->set.wildcardmatch) { + /* destruct wildcard structures if it is needed */ + struct WildcardData *wc = &data->wildcard; + Curl_wildcard_dtor(wc); + } + Curl_freeset(data); free(data); return CURLE_OK; |