From da3fc1ee91de656a30f3a12de394bcba55119872 Mon Sep 17 00:00:00 2001 From: Linus Nielsen Feltzing Date: Sun, 10 Feb 2013 22:57:58 +0100 Subject: [PATCH] Fix NULL pointer reference when closing an unused multi handle. --- lib/multi.c | 8 +++++--- tests/data/Makefile.am | 1 + tests/data/test1508 | 31 +++++++++++++++++++++++++++++ tests/libtest/Makefile.inc | 6 +++++- tests/libtest/lib1508.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 91 insertions(+), 4 deletions(-) create mode 100644 tests/data/test1508 create mode 100644 tests/libtest/lib1508.c diff --git a/lib/multi.c b/lib/multi.c index fa0afb9..706df23 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -1773,10 +1773,12 @@ CURLMcode curl_multi_cleanup(CURLM *multi_handle) /* Close all the connections in the connection cache */ close_all_connections(multi); - multi->closure_handle->dns.hostcache = multi->hostcache; - Curl_hostcache_clean(multi->closure_handle); + if(multi->closure_handle) { + multi->closure_handle->dns.hostcache = multi->hostcache; + Curl_hostcache_clean(multi->closure_handle); - Curl_close(multi->closure_handle); + Curl_close(multi->closure_handle); + } multi->closure_handle = NULL; Curl_hash_destroy(multi->sockhash); -- 1.8.1.3