From: Daniel Stenberg Date: Sat, 22 Dec 2018 17:13:39 +0000 (+0100) Subject: libssh: no data pointer == nothing to do X-Git-Tag: curl-7_64_0~98 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F3400%2Fhead;p=thirdparty%2Fcurl.git libssh: no data pointer == nothing to do --- diff --git a/lib/ssh-libssh.c b/lib/ssh-libssh.c index 2e920f0e9d..77dc098f22 100644 --- a/lib/ssh-libssh.c +++ b/lib/ssh-libssh.c @@ -554,14 +554,19 @@ static CURLcode myssh_statemach_act(struct connectdata *conn, bool *block) { CURLcode result = CURLE_OK; struct Curl_easy *data = conn->data; - struct SSHPROTO *protop = data->req.protop; + struct SSHPROTO *protop; struct ssh_conn *sshc = &conn->proto.sshc; int rc = SSH_NO_ERROR, err; char *new_readdir_line; int seekerr = CURL_SEEKFUNC_OK; const char *err_msg; *block = 0; /* we're not blocking by default */ + if(!data) { + state(conn, SSH_STOP); + return CURLE_OK; + } + protop = data->req.protop; do { switch(sshc->state) { @@ -1988,6 +1993,10 @@ static CURLcode myssh_block_statemach(struct connectdata *conn, struct ssh_conn *sshc = &conn->proto.sshc; CURLcode result = CURLE_OK; struct Curl_easy *data = conn->data; + if(!data) { + state(conn, SSH_STOP); + return CURLE_OK; + } while((sshc->state != SSH_STOP) && !result) { bool block;