From 728400f875e845f72ee5602edb905f6301ade3e7 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 26 Dec 2022 09:59:20 +0100 Subject: [PATCH] cfilters:Curl_conn_get_select_socks: use the first non-connected filter When there are filters addded for both socket and SSL, the code previously checked the SSL sockets during connect when it *should* first check the socket layer until that has connected. Fixes #10157 Fixes #10146 Closes #10160 Reviewed-by: Stefan Eissing --- lib/cfilters.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/cfilters.c b/lib/cfilters.c index 8951533418..8b05fbc8f4 100644 --- a/lib/cfilters.c +++ b/lib/cfilters.c @@ -437,6 +437,10 @@ int Curl_conn_get_select_socks(struct Curl_easy *data, int sockindex, DEBUGASSERT(data); DEBUGASSERT(data->conn); cf = data->conn->cfilter[sockindex]; + + /* if the next one is not yet connected, that's the one we want */ + while(cf && cf->next && !cf->next->connected) + cf = cf->next; if(cf) { return cf->cft->get_select_socks(cf, data, socks); }