summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-misc/curl/files/curl-7.29.0-fix-null-pointer.patch')
-rw-r--r--net-misc/curl/files/curl-7.29.0-fix-null-pointer.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/net-misc/curl/files/curl-7.29.0-fix-null-pointer.patch b/net-misc/curl/files/curl-7.29.0-fix-null-pointer.patch
new file mode 100644
index 000000000000..3a20c8ab19b2
--- /dev/null
+++ b/net-misc/curl/files/curl-7.29.0-fix-null-pointer.patch
@@ -0,0 +1,28 @@
+Fix NULL pointer reference when closing an unused multi handle.
+
+This is commit da3fc1e from upstream, modulo test 1508.
+
+X-Gentoo-Bug: 456842
+X-Gentoo-Bug-URL: https://bugs.gentoo.org/456842
+Reported-by: Thomas McShane <firewrks@yahoo.com>
+
+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);