]> granicus.if.org Git - curl/commitdiff
libssh: no data pointer == nothing to do
authorDaniel Stenberg <daniel@haxx.se>
Sat, 22 Dec 2018 17:13:39 +0000 (18:13 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Sat, 22 Dec 2018 17:14:57 +0000 (18:14 +0100)
lib/ssh-libssh.c

index 2e920f0e9dd97fa829e3bf8a5e29e0b10516e482..77dc098f221f469dd0847baea417a5fa6791b267 100644 (file)
@@ -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;