blob: aaedc27c61df581b64eecbf319a4fbdbfcbe57ea (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
From da3fc1ee91de656a30f3a12de394bcba55119872 Mon Sep 17 00:00:00 2001
From: Linus Nielsen Feltzing <linus@haxx.se>
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
|