summaryrefslogtreecommitdiff
path: root/core/curl/0001-Fix-NULL-pointer-reference-when-closing-an-unused-mu.patch
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