From: Daniel Stenberg Date: Mon, 26 Dec 2022 08:59:20 +0000 (+0100) Subject: cfilters:Curl_conn_get_select_socks: use the first non-connected filter X-Git-Tag: curl-7_88_0~226 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=728400f875e845f72ee5602edb905f6301ade3e7;p=thirdparty%2Fcurl.git 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 --- 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); }