38 lines
1.0 KiB
Diff
38 lines
1.0 KiB
Diff
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
|
|
|