From: Stefan Eissing Date: Tue, 9 Jan 2024 08:29:34 +0000 (+0100) Subject: multi: pollset adjust, init with FIRSTSOCKET during connect X-Git-Tag: curl-8_6_0~108 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=48d86999af12c8dee410296ae7a8f7072ea02042;p=thirdparty%2Fcurl.git multi: pollset adjust, init with FIRSTSOCKET during connect - `conn->sockfd` is set by `Curl_setup_transfer()`, but that is called *after* the connection has been established - use `conn->sock[FIRSTSOCKET]` instead Follow-up to a0f94800d507de Closes #12664 --- diff --git a/lib/multi.c b/lib/multi.c index e4491d912c..63ab67691e 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -998,9 +998,11 @@ static int connecting_getsock(struct Curl_easy *data, curl_socket_t *socks) { struct connectdata *conn = data->conn; (void)socks; - if(conn && conn->sockfd != CURL_SOCKET_BAD) { + /* Not using `conn->sockfd` as `Curl_setup_transfer()` initializes + * that *after* the connect. */ + if(conn && conn->sock[FIRSTSOCKET] != CURL_SOCKET_BAD) { /* Default is to wait to something from the server */ - socks[0] = conn->sockfd; + socks[0] = conn->sock[FIRSTSOCKET]; return GETSOCK_READSOCK(0); } return GETSOCK_BLANK;