From 40b417a03734e72803aea4fff0f4a3945b598e3e Mon Sep 17 00:00:00 2001 From: Mike Gilbert Date: Mon, 8 Dec 2025 23:46:17 -0500 Subject: [PATCH] ucm: use closefrom instead of close_range closefrom is a library function with a fallback mechanism for when the kernel does not support the close_range syscall. Also check for the function properly instead of assuming it is available with _GNU_SOURCE defined. Fixes: https://github.com/alsa-project/alsa-lib/issues/485 Signed-off-by: Mike Gilbert --- configure.ac | 1 + src/ucm/ucm_exec.c | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 8f4bd0de1..f4862f64c 100644 --- a/configure.ac +++ b/configure.ac @@ -52,6 +52,7 @@ dnl Checks for library functions. AC_PROG_GCC_TRADITIONAL AC_CHECK_FUNCS([uselocale]) AC_CHECK_FUNCS([eaccess]) +AC_CHECK_DECLS([closefrom]) dnl Enable largefile support AC_SYS_LARGEFILE diff --git a/src/ucm/ucm_exec.c b/src/ucm/ucm_exec.c index b5a22023b..713039b49 100644 --- a/src/ucm/ucm_exec.c +++ b/src/ucm/ucm_exec.c @@ -259,8 +259,8 @@ int uc_mgr_exec(const char *prog) close(f); -#if defined(_GNU_SOURCE) - close_range(3, maxfd, 0); +#if HAVE_DECL_CLOSEFROM + closefrom(3); #else for (f = 3; f < maxfd; f++) close(f);