]> andersk Git - openssh.git/blobdiff - auth-chall.c
- (dtucker) [openbsd-compat/setproctitle.c] Ensure SPT_TYPE is defined before
[openssh.git] / auth-chall.c
index 45e0c34522b16eb6cb2ad779431d1778b0aec5e3..6b7c8bd13ba3793c8e23fc584059c45cba894e3e 100644 (file)
@@ -76,7 +76,33 @@ verify_response(Authctxt *authctxt, const char *response)
                return 0;
        resp[0] = (char *)response;
        res = device->respond(authctxt->kbdintctxt, 1, resp);
+       if (res == 1) {
+               /* postponed - send a null query just in case */
+               char *name, *info, **prompts;
+               u_int i, numprompts, *echo_on;
+
+               res = device->query(authctxt->kbdintctxt, &name, &info,
+                   &numprompts, &prompts, &echo_on);
+               if (res == 0) {
+                       for (i = 0; i < numprompts; i++)
+                               xfree(prompts[i]);
+                       xfree(prompts);
+                       xfree(name);
+                       xfree(echo_on);
+                       xfree(info);
+               }
+               /* if we received more prompts, we're screwed */
+               res = (numprompts != 0);
+       }
        device->free_ctx(authctxt->kbdintctxt);
        authctxt->kbdintctxt = NULL;
        return res ? 0 : 1;
 }
+void
+abandon_challenge_response(Authctxt *authctxt)
+{
+       if (authctxt->kbdintctxt != NULL) {
+               device->free_ctx(authctxt->kbdintctxt);
+               authctxt->kbdintctxt = NULL;
+       }
+}
This page took 0.485945 seconds and 4 git commands to generate.