From b700662b1c77c8af7e290538f748b71d75a79ae7 Mon Sep 17 00:00:00 2001 From: Jay Satiro Date: Fri, 27 Dec 2019 23:39:24 -0500 Subject: multi: Change curl_multi_wait/poll to error on negative timeout - Add new error CURLM_BAD_FUNCTION_ARGUMENT and return that error when curl_multi_wait/poll is passed timeout param < 0. Prior to this change passing a negative value to curl_multi_wait/poll such as -1 could cause the function to wait forever. Reported-by: hamstergene@users.noreply.github.com Fixes https://github.com/curl/curl/issues/4763 Closes https://github.com/curl/curl/pull/4765 --- lib/multi.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'lib/multi.c') diff --git a/lib/multi.c b/lib/multi.c index 6d819b4aa..31275ca2b 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -1048,6 +1048,9 @@ static CURLMcode Curl_multi_wait(struct Curl_multi *multi, if(multi->in_callback) return CURLM_RECURSIVE_API_CALL; + if(timeout_ms < 0) + return CURLM_BAD_FUNCTION_ARGUMENT; + /* Count up how many fds we have from the multi handle */ data = multi->easyp; while(data) { -- cgit v1.2.3