From f584ad95048279b244083fee330c5741be2b9da7 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Thu, 31 Mar 2022 21:03:13 +0900 Subject: [PATCH] scd,tpm2d: Fix for consistent use of socket FD. * scd/command.c (scd_command_handler): Use gnupg_fd_t for the argument but no INT2FD to listen. Use GNUPG_INVALID_FD. * tpm2d/command.c (tpm2d_command_handler): Likewise. * scd/scdaemon.c (start_connection_thread): Follow the change. * tpm2d/tpm2daemon.c (start_connection_thread): Likewise. * scd/scdaemon.h (scd_command_handler): Use gnupg_fd_t. * tpm2d/tpm2daemon.h (tpm2d_command_handler): Likewise. -- Signed-off-by: NIIBE Yutaka --- scd/command.c | 6 +++--- scd/scdaemon.c | 2 +- scd/scdaemon.h | 2 +- tpm2d/command.c | 6 +++--- tpm2d/tpm2daemon.c | 2 +- tpm2d/tpm2daemon.h | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/scd/command.c b/scd/command.c index 10f5a2fe1..bc2e1f979 100644 --- a/scd/command.c +++ b/scd/command.c @@ -2454,7 +2454,7 @@ register_commands (assuan_context_t ctx) server, otherwise it is a regular server. Returns true if there are no more active asessions. */ int -scd_command_handler (ctrl_t ctrl, int fd) +scd_command_handler (ctrl_t ctrl, gnupg_fd_t fd) { int rc; assuan_context_t ctx = NULL; @@ -2468,7 +2468,7 @@ scd_command_handler (ctrl_t ctrl, int fd) scd_exit (2); } - if (fd == -1) + if (fd == GNUPG_INVALID_FD) { assuan_fd_t filedes[2]; @@ -2478,7 +2478,7 @@ scd_command_handler (ctrl_t ctrl, int fd) } else { - rc = assuan_init_socket_server (ctx, INT2FD(fd), + rc = assuan_init_socket_server (ctx, fd, ASSUAN_SOCKET_SERVER_ACCEPTED); } if (rc) diff --git a/scd/scdaemon.c b/scd/scdaemon.c index d05b8d344..83f24577a 100644 --- a/scd/scdaemon.c +++ b/scd/scdaemon.c @@ -1199,7 +1199,7 @@ start_connection_thread (void *arg) handler asked for it. With the next ticker event and given that no other connections are running the shutdown will then happen. */ - if (scd_command_handler (ctrl, FD2INT(ctrl->thread_startup.fd)) + if (scd_command_handler (ctrl, ctrl->thread_startup.fd) && pipe_server) shutdown_pending = 1; diff --git a/scd/scdaemon.h b/scd/scdaemon.h index 096a4b9e2..071960c6c 100644 --- a/scd/scdaemon.h +++ b/scd/scdaemon.h @@ -130,7 +130,7 @@ const char *scd_get_socket_name (void); /*-- command.c --*/ gpg_error_t initialize_module_command (void); -int scd_command_handler (ctrl_t, int); +int scd_command_handler (ctrl_t, gnupg_fd_t); void send_status_info (ctrl_t ctrl, const char *keyword, ...) GPGRT_ATTR_SENTINEL(1); gpg_error_t send_status_direct (ctrl_t ctrl, diff --git a/tpm2d/command.c b/tpm2d/command.c index 351781111..6f8cb5506 100644 --- a/tpm2d/command.c +++ b/tpm2d/command.c @@ -403,7 +403,7 @@ register_commands (assuan_context_t ctx) server, otherwise it is a regular server. Returns true if there are no more active asessions. */ int -tpm2d_command_handler (ctrl_t ctrl, int fd) +tpm2d_command_handler (ctrl_t ctrl, gnupg_fd_t fd) { int rc; assuan_context_t ctx = NULL; @@ -417,7 +417,7 @@ tpm2d_command_handler (ctrl_t ctrl, int fd) tpm2d_exit (2); } - if (fd == -1) + if (fd == GNUPG_INVALID_FD) { assuan_fd_t filedes[2]; @@ -427,7 +427,7 @@ tpm2d_command_handler (ctrl_t ctrl, int fd) } else { - rc = assuan_init_socket_server (ctx, INT2FD (fd), + rc = assuan_init_socket_server (ctx, fd, ASSUAN_SOCKET_SERVER_ACCEPTED); } if (rc) diff --git a/tpm2d/tpm2daemon.c b/tpm2d/tpm2daemon.c index 445e9dbbd..2fff54337 100644 --- a/tpm2d/tpm2daemon.c +++ b/tpm2d/tpm2daemon.c @@ -1029,7 +1029,7 @@ start_connection_thread (void *arg) handler asked for it. With the next ticker event and given that no other connections are running the shutdown will then happen. */ - if (tpm2d_command_handler (ctrl, FD2INT (ctrl->thread_startup.fd)) + if (tpm2d_command_handler (ctrl, ctrl->thread_startup.fd) && pipe_server) shutdown_pending = 1; diff --git a/tpm2d/tpm2daemon.h b/tpm2d/tpm2daemon.h index 095978a5b..29db7a869 100644 --- a/tpm2d/tpm2daemon.h +++ b/tpm2d/tpm2daemon.h @@ -92,7 +92,7 @@ void tpm2d_exit (int rc); /*-- command.c --*/ gpg_error_t initialize_module_command (void); -int tpm2d_command_handler (ctrl_t, int); +int tpm2d_command_handler (ctrl_t, gnupg_fd_t); void send_client_notifications (app_t app, int removal); void tpm2d_kick_the_loop (void); int get_active_connection_count (void);