]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
libssh2: kdb_callback: get the right struct pointer
authorDaniel Stenberg <daniel@haxx.se>
Tue, 23 Mar 2021 10:17:32 +0000 (11:17 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 23 Mar 2021 12:42:22 +0000 (13:42 +0100)
After the recent conn/data refactor in this source file, this function
was mistakenly still getting the old struct pointer which would lead to
crash on servers with keyboard-interactive auth enabled.

Follow-up to a304051620b92e12b (shipped in 7.75.0)

Reported-by: Christian Schmitz
Fixes #6691
Closes #6782

lib/vssh/libssh2.c

index 891e945f79de6a7b72a939e7ff9f032c9f9dddc1..9d188d05824083a59f1929231598741caf692037 100644 (file)
@@ -184,7 +184,7 @@ kbd_callback(const char *name, int name_len, const char *instruction,
              LIBSSH2_USERAUTH_KBDINT_RESPONSE *responses,
              void **abstract)
 {
-  struct connectdata *conn = (struct connectdata *)*abstract;
+  struct Curl_easy *data = (struct Curl_easy *)*abstract;
 
 #ifdef CURL_LIBSSH2_DEBUG
   fprintf(stderr, "name=%s\n", name);
@@ -199,11 +199,11 @@ kbd_callback(const char *name, int name_len, const char *instruction,
   (void)instruction_len;
 #endif  /* CURL_LIBSSH2_DEBUG */
   if(num_prompts == 1) {
+    struct connectdata *conn = data->conn;
     responses[0].text = strdup(conn->passwd);
     responses[0].length = curlx_uztoui(strlen(conn->passwd));
   }
   (void)prompts;
-  (void)abstract;
 } /* kbd_callback */
 
 static CURLcode sftp_libssh2_error_to_CURLE(unsigned long err)