From 730593affa91182ccd57d9618dd650fe170ebe1c Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Tue, 17 Sep 2024 09:24:41 +0900 Subject: [PATCH] common:w32: Don't expose unused functions. * common/exechelp.h [HAVE_W32_SYSTEM] (get_max_fds): Don't expose. (close_all_fds, get_all_open_fds): Likewise. * common/exechelp-w32.c: Don't expose unused functions. -- GnuPG-bug-id: 7293 Signed-off-by: NIIBE Yutaka --- common/exechelp-w32.c | 12 ++++++++++-- common/exechelp.h | 2 ++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/common/exechelp-w32.c b/common/exechelp-w32.c index 2093f0d8b..bfc6b59c4 100644 --- a/common/exechelp-w32.c +++ b/common/exechelp-w32.c @@ -99,7 +99,15 @@ my_error (int errcode) return gpg_err_make (default_errsource, errcode); } - +/* + * get_max_fds, close_all_fds and get_all_open_fds are functions for + * POSIX, not Windows. After fork and before exec on POSIX, those are + * used when spawning a child process so that the child process + * doesn't keep having file descriptors not needed for it. On + * Windows, spawn API has a different semantics (than fork + exec). + */ +#undef EXPORT_UNUSED_FUNCTIONS +#ifdef EXPORT_UNUSED_FUNCTIONS /* Return the maximum number of currently allowed open file descriptors. Only useful on POSIX systems but returns a value on other systems too. */ @@ -180,7 +188,7 @@ get_all_open_fds (void) #endif /*HAVE_STAT*/ return array; } - +#endif /* Helper function to build_w32_commandline. */ static char * diff --git a/common/exechelp.h b/common/exechelp.h index 3343fe598..c45a1c40b 100644 --- a/common/exechelp.h +++ b/common/exechelp.h @@ -33,6 +33,7 @@ #define GNUPG_COMMON_EXECHELP_H +#ifndef HAVE_W32_SYSTEM /* Return the maximum number of currently allowed file descriptors. Only useful on POSIX systems. */ int get_max_fds (void); @@ -51,6 +52,7 @@ void close_all_fds (int first, int *except); use of this function right at startup even before libgcrypt has been initialized. Returns NULL on error and sets ERRNO accordingly. */ int *get_all_open_fds (void); +#endif /* Portable function to create a pipe. Under Windows the write end is