summaryrefslogtreecommitdiff
path: root/backport-multi-check-that-the-multi-handle-is-valid-in-curl_m.patch
diff options
context:
space:
mode:
Diffstat (limited to 'backport-multi-check-that-the-multi-handle-is-valid-in-curl_m.patch')
-rw-r--r--backport-multi-check-that-the-multi-handle-is-valid-in-curl_m.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/backport-multi-check-that-the-multi-handle-is-valid-in-curl_m.patch b/backport-multi-check-that-the-multi-handle-is-valid-in-curl_m.patch
new file mode 100644
index 0000000..c1dc6f5
--- /dev/null
+++ b/backport-multi-check-that-the-multi-handle-is-valid-in-curl_m.patch
@@ -0,0 +1,37 @@
+From 48f61e781a01e6a8dbc4a347e280644b1c68ab6a Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg <daniel@haxx.se>
+Date: Wed, 11 Sep 2024 14:12:41 +0200
+Subject: [PATCH] multi: check that the multi handle is valid in
+ curl_multi_assign
+
+By requiring that the multi handle is fine, it can detect bad usage
+better and by that avoid crashes. Like in the #14860 case, which is an
+application calling curl_multi_assign() with a NULL pointer multi
+handle.
+
+Reported-by: Carlo Cabrera
+Fixes #14860
+Closes #14862
+
+Conflict:NA
+Reference:https://github.com/curl/curl/commit/48f61e781a01e6a8dbc4a347e280644b1c68ab6a
+---
+ lib/multi.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/lib/multi.c b/lib/multi.c
+index 062d09cc0..78e5c0a1e 100644
+--- a/lib/multi.c
++++ b/lib/multi.c
+@@ -3688,6 +3688,8 @@ CURLMcode curl_multi_assign(struct Curl_multi *multi, curl_socket_t s,
+ void *hashp)
+ {
+ struct Curl_sh_entry *there = NULL;
++ if(!GOOD_MULTI_HANDLE(multi))
++ return CURLM_BAD_HANDLE;
+
+ there = sh_getentry(&multi->sockhash, s);
+
+--
+2.33.0
+