diff --git a/usr.bin/ssh/ssh-agent.c b/usr.bin/ssh/ssh-agent.c index 1ea0618ba23..52604728792 100644 --- a/usr.bin/ssh/ssh-agent.c +++ b/usr.bin/ssh/ssh-agent.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-agent.c,v 1.328 2026/05/31 04:31:04 djm Exp $ */ +/* $OpenBSD: ssh-agent.c,v 1.329 2026/06/13 00:37:13 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1789,7 +1789,7 @@ process_ext_query(SocketEntry *e) static void process_extension(SocketEntry *e) { - int r, success = 0; + int r, replied = 0, success = 0; char *name; debug2_f("entering"); @@ -1800,7 +1800,7 @@ process_extension(SocketEntry *e) } if (strcmp(name, "query") == 0) - success = process_ext_query(e); + replied = success = process_ext_query(e); else if (strcmp(name, "session-bind@openssh.com") == 0) success = process_ext_session_bind(e); else { @@ -1811,8 +1811,10 @@ process_extension(SocketEntry *e) } free(name); /* Agent failures are signalled with a different error code */ - send_status_generic(e, - success ? SSH_AGENT_SUCCESS : SSH_AGENT_EXTENSION_FAILURE); + if (!replied) { + send_status_generic(e, + success ? SSH_AGENT_SUCCESS : SSH_AGENT_EXTENSION_FAILURE); + } } /*