]> andersk Git - openssh.git/commitdiff
- markus@cvs.openbsd.org 2003/10/11 08:26:43
authordtucker <dtucker>
Wed, 15 Oct 2003 05:55:59 +0000 (05:55 +0000)
committerdtucker <dtucker>
Wed, 15 Oct 2003 05:55:59 +0000 (05:55 +0000)
     [sshconnect2.c]
     search keys in reverse order; fixes #684

ChangeLog
sshconnect2.c

index f484326cea83239964c4b5b599fad988069c57ff..eabcb884e9f51c8d536d55c461e1120bc86c28ad 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -16,6 +16,9 @@
      remote x11 clients are now untrusted by default, uses xauth(8) to generate
      untrusted cookies; ForwardX11Trusted=yes restores old behaviour.
      ok deraadt; feedback and ok djm/fries
+   - markus@cvs.openbsd.org 2003/10/11 08:26:43
+     [sshconnect2.c]
+     search keys in reverse order; fixes #684
 
 20031009
  - (dtucker) [sshd_config.5] UsePAM defaults to "no".  ok djm@
index 2ef4201ce7f93bee91d6838b1e223b79b1685f2f..f38fdf9a0628ddfe846d1760249c50cff278cb86 100644 (file)
@@ -23,7 +23,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: sshconnect2.c,v 1.126 2003/10/07 21:58:28 deraadt Exp $");
+RCSID("$OpenBSD: sshconnect2.c,v 1.127 2003/10/11 08:26:43 markus Exp $");
 
 #include "openbsd-compat/sys-queue.h"
 
@@ -453,7 +453,12 @@ input_userauth_pk_ok(int type, u_int32_t seq, void *ctxt)
        debug2("input_userauth_pk_ok: fp %s", fp);
        xfree(fp);
 
-       TAILQ_FOREACH(id, &authctxt->keys, next) {
+       /*
+        * search keys in the reverse order, because last candidate has been
+        * moved to the end of the queue.  this also avoids confusion by
+        * duplicate keys
+        */
+       TAILQ_FOREACH_REVERSE(id, &authctxt->keys, next, idlist) {
                if (key_equal(key, id->key)) {
                        sent = sign_and_send_pubkey(authctxt, id);
                        break;
@@ -1086,6 +1091,7 @@ userauth_pubkey(Authctxt *authctxt)
        while ((id = TAILQ_FIRST(&authctxt->keys))) {
                if (id->tried++)
                        return (0);
+               /* move key to the end of the queue */
                TAILQ_REMOVE(&authctxt->keys, id, next);
                TAILQ_INSERT_TAIL(&authctxt->keys, id, next);
                /*
This page took 0.046936 seconds and 5 git commands to generate.