From: dtucker Date: Thu, 12 Jun 2008 22:56:01 +0000 (+0000) Subject: - djm@cvs.openbsd.org 2008/06/12 21:06:25 X-Git-Tag: V_5_1_P1~106 X-Git-Url: http://andersk.mit.edu/gitweb/openssh.git/commitdiff_plain/07d8d4808c10288754f2440055c58c038009cdfa - djm@cvs.openbsd.org 2008/06/12 21:06:25 [clientloop.c] I was coalescing expected global request confirmation replies at the wrong end of the queue - fix; prompted by markus@ --- diff --git a/ChangeLog b/ChangeLog index 36002538..7b4c13d6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -125,6 +125,10 @@ - djm@cvs.openbsd.org 2008/06/12 20:47:04 [sftp-client.c] print extension revisions for extensions that we understand + - djm@cvs.openbsd.org 2008/06/12 21:06:25 + [clientloop.c] + I was coalescing expected global request confirmation replies at + the wrong end of the queue - fix; prompted by markus@ - (dtucker) [clientloop.c serverloop.c] channel_register_filter now takes 2 more args. with djm@ diff --git a/clientloop.c b/clientloop.c index 62adbb78..6dc87088 100644 --- a/clientloop.c +++ b/clientloop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: clientloop.c,v 1.198 2008/06/12 15:19:17 djm Exp $ */ +/* $OpenBSD: clientloop.c,v 1.199 2008/06/12 21:06:25 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -745,7 +745,7 @@ client_register_global_confirm(global_confirm_cb *cb, void *ctx) struct global_confirm *gc, *first_gc; /* Coalesce identical callbacks */ - first_gc = TAILQ_FIRST(&global_confirms); + first_gc = TAILQ_LAST(&global_confirms, global_confirms); if (first_gc && first_gc->cb == cb && first_gc->ctx == ctx) { if (++first_gc->ref_count >= INT_MAX) fatal("%s: first_gc->ref_count = %d",