diff options
author | Werner Koch <[email protected]> | 2025-05-14 08:34:46 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2025-05-16 12:26:45 +0000 |
commit | 645cf7d8fc25615fd6d2cb027fad8f3dadffb09d (patch) | |
tree | d9bec45b0b8bf69191bd35bec2a27a49948a48da | |
parent | common: Add KEM constants for NIST curves. (diff) | |
download | gnupg-645cf7d8fc25615fd6d2cb027fad8f3dadffb09d.tar.gz gnupg-645cf7d8fc25615fd6d2cb027fad8f3dadffb09d.zip |
Revert "w32: On socket nonce mismatch close the socket."
--
The commit was entirely bogus because the check_nonce function closes
the socket itself if it returns with true. Thus closing the socket by
the caller in the true case was bogus.
The more likely cause for the hangs on Windows are in scdaemon:
* scd: Fix posssible lockup on Windows due to a lost select
result. [rGa7ec3792c5]
GnuPG-bug-id: 7434
Fixes-commit: 73f6c2dd4d3e5b58faf69821726988ae984fad89.
-rw-r--r-- | agent/command.c | 2 | ||||
-rw-r--r-- | agent/gpg-agent.c | 20 | ||||
-rw-r--r-- | dirmngr/dirmngr.c | 3 | ||||
-rw-r--r-- | kbx/keyboxd.c | 5 |
4 files changed, 11 insertions, 19 deletions
diff --git a/agent/command.c b/agent/command.c index ff018dde7..88c5576fb 100644 --- a/agent/command.c +++ b/agent/command.c @@ -4400,7 +4400,7 @@ register_commands (assuan_context_t ctx) /* Startup the server. If LISTEN_FD and FD is given as -1, this is a - simple pipe server, otherwise it is a regular server. CTRL is the + simple piper server, otherwise it is a regular server. CTRL is the control structure for this connection; it has only the basic initialization. */ void diff --git a/agent/gpg-agent.c b/agent/gpg-agent.c index 5b1a124e0..ae1295977 100644 --- a/agent/gpg-agent.c +++ b/agent/gpg-agent.c @@ -2877,9 +2877,8 @@ start_connection_thread_std (void *arg) if (check_nonce (ctrl, &socket_nonce)) { - log_error ("handler 0x%lx for fd %d FAILED nonce check\n", - (unsigned long) npth_self(), FD_DBG (ctrl->thread_startup.fd)); - assuan_sock_close (ctrl->thread_startup.fd); + log_error ("handler 0x%lx nonce check FAILED\n", + (unsigned long) npth_self()); return NULL; } @@ -2895,9 +2894,8 @@ start_connection_thread_extra (void *arg) if (check_nonce (ctrl, &socket_nonce_extra)) { - log_error ("handler 0x%lx for fd %d FAILED nonce check\n", - (unsigned long) npth_self(), FD_DBG (ctrl->thread_startup.fd)); - assuan_sock_close (ctrl->thread_startup.fd); + log_error ("handler 0x%lx nonce check FAILED\n", + (unsigned long) npth_self()); return NULL; } @@ -2914,9 +2912,8 @@ start_connection_thread_browser (void *arg) if (check_nonce (ctrl, &socket_nonce_browser)) { - log_error ("handler 0x%lx for fd %d FAILED nonce check\n", - (unsigned long) npth_self(), FD_DBG (ctrl->thread_startup.fd)); - assuan_sock_close (ctrl->thread_startup.fd); + log_error ("handler 0x%lx nonce check FAILED\n", + (unsigned long) npth_self()); return NULL; } @@ -2932,10 +2929,7 @@ start_connection_thread_ssh (void *arg) ctrl_t ctrl = arg; if (check_nonce (ctrl, &socket_nonce_ssh)) - { - assuan_sock_close (ctrl->thread_startup.fd); - return NULL; - } + return NULL; active_connections++; agent_init_default_ctrl (ctrl); diff --git a/dirmngr/dirmngr.c b/dirmngr/dirmngr.c index 492171aac..08f313879 100644 --- a/dirmngr/dirmngr.c +++ b/dirmngr/dirmngr.c @@ -2272,8 +2272,7 @@ start_connection_thread (void *arg) if (check_nonce (fd, &socket_nonce)) { - log_error ("handler for fd %d FAILED nonce check\n", FD_DBG (fd)); - assuan_sock_close (fd); + log_error ("handler nonce check FAILED\n"); return NULL; } diff --git a/kbx/keyboxd.c b/kbx/keyboxd.c index 28e292e10..197f01c74 100644 --- a/kbx/keyboxd.c +++ b/kbx/keyboxd.c @@ -1448,9 +1448,8 @@ start_connection_thread (void *arg) if (check_nonce (ctrl, &socket_nonce)) { - log_error ("handler 0x%lx for fd %d FAILED nonce check\n", - (unsigned long) npth_self(), FD_DBG (ctrl->thread_startup.fd)); - assuan_sock_close (ctrl->thread_startup.fd); + log_error ("handler 0x%lx nonce check FAILED\n", + (unsigned long) npth_self()); return NULL; } |