From: Jay Dommaschk Date: Wed, 20 Apr 2022 07:11:41 +0000 (+0200) Subject: libssh: fix double close X-Git-Tag: curl-7_83_0~34 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c4d032af2a6cdd899b06a829cb6a9be3261a8d4a;p=thirdparty%2Fcurl.git libssh: fix double close libssh closes the socket in ssh_diconnect() so make sure that libcurl does not also close it. Fixes #8708 Closes #8718 --- diff --git a/lib/vssh/libssh.c b/lib/vssh/libssh.c index 617788c7f7..7bf2b04176 100644 --- a/lib/vssh/libssh.c +++ b/lib/vssh/libssh.c @@ -1970,6 +1970,10 @@ static CURLcode myssh_statemach_act(struct Curl_easy *data, bool *block) } ssh_disconnect(sshc->ssh_session); + /* conn->sock[FIRSTSOCKET] is closed by ssh_disconnect behind our back, + explicitly mark it as closed with the memdebug macro: */ + fake_sclose(conn->sock[FIRSTSOCKET]); + conn->sock[FIRSTSOCKET] = CURL_SOCKET_BAD; SSH_STRING_FREE_CHAR(sshc->homedir); data->state.most_recent_ftp_entrypath = NULL;