commit: e6771be6d67369f71dc1a5002682c17a2ff054aa Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Tue Dec 9 22:32:51 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Tue Dec 9 22:32:51 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e6771be6
media-libs/alsa-lib: backport more upstream fixes to 1.2.15 This may help bug #967264 as it fixes a config parsing bug. Bug: https://bugs.gentoo.org/967264 Signed-off-by: Sam James <sam <AT> gentoo.org> ...-1.2.15-r1.ebuild => alsa-lib-1.2.15-r2.ebuild} | 3 +- ...-ucm-use-closefrom-instead-of-close_range.patch | 51 ++++++++++++ .../0002-ucm-exec-fix-maxfd-used-warning.patch | 53 ++++++++++++ ...card-specific-contents-per-file-whole-aft.patch | 51 ++++++++++++ ...ssible-memory-leak-in-config_file_open-er.patch | 35 ++++++++ .../alsa-lib/files/alsa-lib-1.2.15-closefrom.patch | 97 ---------------------- 6 files changed, 192 insertions(+), 98 deletions(-) diff --git a/media-libs/alsa-lib/alsa-lib-1.2.15-r1.ebuild b/media-libs/alsa-lib/alsa-lib-1.2.15-r2.ebuild similarity index 98% rename from media-libs/alsa-lib/alsa-lib-1.2.15-r1.ebuild rename to media-libs/alsa-lib/alsa-lib-1.2.15-r2.ebuild index 03418992c363..4ef4b1e7f001 100644 --- a/media-libs/alsa-lib/alsa-lib-1.2.15-r1.ebuild +++ b/media-libs/alsa-lib/alsa-lib-1.2.15-r2.ebuild @@ -34,7 +34,8 @@ BDEPEND="doc? ( >=app-text/doxygen-1.2.6 )" PATCHES=( "${FILESDIR}/${PN}-1.1.6-missing_files.patch" # bug #652422 - "${FILESDIR}/alsa-lib-1.2.15-closefrom.patch" + # Backports since last tag + "${FILESDIR}/${PV}" ) pkg_setup() { diff --git a/media-libs/alsa-lib/files/1.2.15/0001-ucm-use-closefrom-instead-of-close_range.patch b/media-libs/alsa-lib/files/1.2.15/0001-ucm-use-closefrom-instead-of-close_range.patch new file mode 100644 index 000000000000..f33946cab65a --- /dev/null +++ b/media-libs/alsa-lib/files/1.2.15/0001-ucm-use-closefrom-instead-of-close_range.patch @@ -0,0 +1,51 @@ +From a068cf08ad67447893b707cddfce31c9cafee643 Mon Sep 17 00:00:00 2001 +Message-ID: <a068cf08ad67447893b707cddfce31c9cafee643.1765319211.git....@gentoo.org> +From: Mike Gilbert <[email protected]> +Date: Mon, 8 Dec 2025 23:46:17 -0500 +Subject: [PATCH 1/4] 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. + +Closes: https://github.com/alsa-project/alsa-lib/pull/486 +Fixes: https://github.com/alsa-project/alsa-lib/issues/485 +Signed-off-by: Mike Gilbert <[email protected]> +Signed-off-by: Jaroslav Kysela <[email protected]> +--- + 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 8f4bd0de..f4862f64 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 b5a22023..713039b4 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); +-- +2.52.0 + diff --git a/media-libs/alsa-lib/files/1.2.15/0002-ucm-exec-fix-maxfd-used-warning.patch b/media-libs/alsa-lib/files/1.2.15/0002-ucm-exec-fix-maxfd-used-warning.patch new file mode 100644 index 000000000000..deb083943512 --- /dev/null +++ b/media-libs/alsa-lib/files/1.2.15/0002-ucm-exec-fix-maxfd-used-warning.patch @@ -0,0 +1,53 @@ +From 813ffe34ff6c720dcc56e4549338bf9e9184af1f Mon Sep 17 00:00:00 2001 +Message-ID: <813ffe34ff6c720dcc56e4549338bf9e9184af1f.1765319211.git....@gentoo.org> +In-Reply-To: <a068cf08ad67447893b707cddfce31c9cafee643.1765319211.git....@gentoo.org> +References: <a068cf08ad67447893b707cddfce31c9cafee643.1765319211.git....@gentoo.org> +From: Jaroslav Kysela <[email protected]> +Date: Tue, 9 Dec 2025 17:48:34 +0100 +Subject: [PATCH 2/4] ucm: exec - fix maxfd used warning + +Fixes: a068cf08 ("ucm: use closefrom instead of close_range") +Signed-off-by: Jaroslav Kysela <[email protected]> +--- + src/ucm/ucm_exec.c | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +diff --git a/src/ucm/ucm_exec.c b/src/ucm/ucm_exec.c +index 713039b4..c16a4cfd 100644 +--- a/src/ucm/ucm_exec.c ++++ b/src/ucm/ucm_exec.c +@@ -183,7 +183,7 @@ static int parse_args(char ***argv, int argc, const char *cmd) + */ + int uc_mgr_exec(const char *prog) + { +- pid_t p, f, maxfd; ++ pid_t p, f; + int err = 0, status; + char bin[PATH_MAX]; + struct sigaction sa; +@@ -212,8 +212,6 @@ int uc_mgr_exec(const char *prog) + prog = bin; + } + +- maxfd = sysconf(_SC_OPEN_MAX); +- + /* + * block SIGCHLD signal + * ignore SIGINT and SIGQUIT in parent +@@ -262,8 +260,11 @@ int uc_mgr_exec(const char *prog) + #if HAVE_DECL_CLOSEFROM + closefrom(3); + #else +- for (f = 3; f < maxfd; f++) +- close(f); ++ { ++ pid_t maxfd = sysconf(_SC_OPEN_MAX); ++ for (f = 3; f < maxfd; f++) ++ close(f); ++ } + #endif + + /* install default handlers for the forked process */ +-- +2.52.0 + diff --git a/media-libs/alsa-lib/files/1.2.15/0003-conf-merge-card-specific-contents-per-file-whole-aft.patch b/media-libs/alsa-lib/files/1.2.15/0003-conf-merge-card-specific-contents-per-file-whole-aft.patch new file mode 100644 index 000000000000..66610b9eeec1 --- /dev/null +++ b/media-libs/alsa-lib/files/1.2.15/0003-conf-merge-card-specific-contents-per-file-whole-aft.patch @@ -0,0 +1,51 @@ +From a6238053c4fa518b214f99d91a01b96c5ef6e3ca Mon Sep 17 00:00:00 2001 +Message-ID: <a6238053c4fa518b214f99d91a01b96c5ef6e3ca.1765319211.git....@gentoo.org> +In-Reply-To: <a068cf08ad67447893b707cddfce31c9cafee643.1765319211.git....@gentoo.org> +References: <a068cf08ad67447893b707cddfce31c9cafee643.1765319211.git....@gentoo.org> +From: Jaroslav Kysela <[email protected]> +Date: Tue, 9 Dec 2025 18:04:07 +0100 +Subject: [PATCH 3/4] conf: merge card specific contents per file (whole) after + parsing + +Unfortunately, mentioned fix caused a regression for items stored in one file. +Merge the file contents after parsing not inside parsing process. + +BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=2420645 +Fixes: eda76146 ("conf: fix load_for_all_cards() - do not merge the card specific contents") +Signed-off-by: Jaroslav Kysela <[email protected]> +--- + src/conf.c | 13 ++++++++++--- + 1 file changed, 10 insertions(+), 3 deletions(-) + +diff --git a/src/conf.c b/src/conf.c +index 49499ecd..b1ec9b38 100644 +--- a/src/conf.c ++++ b/src/conf.c +@@ -4119,14 +4119,21 @@ static int config_filename_filter(const struct dirent64 *dirent) + static int config_file_open(snd_config_t *root, const char *filename, int merge) + { + snd_input_t *in; ++ snd_config_t *top; + int err; + + err = snd_input_stdio_open(&in, filename, "r"); + if (err >= 0) { +- if (merge) ++ if (merge) { + err = snd_config_load(root, in); +- else +- err = snd_config_load_override(root, in); ++ } else { ++ err = snd_config_top(&top); ++ if (err >= 0) { ++ err = snd_config_load(top, in); ++ if (err >= 0) ++ err = snd_config_merge(root, top, 1); ++ } ++ } + snd_input_close(in); + if (err < 0) + snd_error(CORE, "%s may be old or corrupted: consider to remove or fix it", filename); +-- +2.52.0 + diff --git a/media-libs/alsa-lib/files/1.2.15/0004-conf-fix-possible-memory-leak-in-config_file_open-er.patch b/media-libs/alsa-lib/files/1.2.15/0004-conf-fix-possible-memory-leak-in-config_file_open-er.patch new file mode 100644 index 000000000000..38920923ad10 --- /dev/null +++ b/media-libs/alsa-lib/files/1.2.15/0004-conf-fix-possible-memory-leak-in-config_file_open-er.patch @@ -0,0 +1,35 @@ +From 2f59398c83b8065fb9ff58939df3a9187746068e Mon Sep 17 00:00:00 2001 +Message-ID: <2f59398c83b8065fb9ff58939df3a9187746068e.1765319211.git....@gentoo.org> +In-Reply-To: <a068cf08ad67447893b707cddfce31c9cafee643.1765319211.git....@gentoo.org> +References: <a068cf08ad67447893b707cddfce31c9cafee643.1765319211.git....@gentoo.org> +From: Jaroslav Kysela <[email protected]> +Date: Tue, 9 Dec 2025 18:39:52 +0100 +Subject: [PATCH 4/4] conf: fix possible memory leak in config_file_open() - + error path + +Fixes: a6238053 ("conf: merge card specific contents per file (whole) after parsing") +Signed-off-by: Jaroslav Kysela <[email protected]> +--- + src/conf.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/src/conf.c b/src/conf.c +index b1ec9b38..d90f6dc3 100644 +--- a/src/conf.c ++++ b/src/conf.c +@@ -4130,8 +4130,11 @@ static int config_file_open(snd_config_t *root, const char *filename, int merge) + err = snd_config_top(&top); + if (err >= 0) { + err = snd_config_load(top, in); +- if (err >= 0) ++ if (err >= 0) { + err = snd_config_merge(root, top, 1); ++ if (err < 0) ++ snd_config_delete(top); ++ } + } + } + snd_input_close(in); +-- +2.52.0 + diff --git a/media-libs/alsa-lib/files/alsa-lib-1.2.15-closefrom.patch b/media-libs/alsa-lib/files/alsa-lib-1.2.15-closefrom.patch deleted file mode 100644 index 93de9f8153d8..000000000000 --- a/media-libs/alsa-lib/files/alsa-lib-1.2.15-closefrom.patch +++ /dev/null @@ -1,97 +0,0 @@ -https://bugs.gentoo.org/967250 -https://github.com/alsa-project/alsa-lib/pull/486 - -From a068cf08ad67447893b707cddfce31c9cafee643 Mon Sep 17 00:00:00 2001 -From: Mike Gilbert <[email protected]> -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. - -Closes: https://github.com/alsa-project/alsa-lib/pull/486 -Fixes: https://github.com/alsa-project/alsa-lib/issues/485 -Signed-off-by: Mike Gilbert <[email protected]> -Signed-off-by: Jaroslav Kysela <[email protected]> ---- - 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); -From 813ffe34ff6c720dcc56e4549338bf9e9184af1f Mon Sep 17 00:00:00 2001 -From: Jaroslav Kysela <[email protected]> -Date: Tue, 9 Dec 2025 17:48:34 +0100 -Subject: [PATCH] ucm: exec - fix maxfd used warning - -Fixes: a068cf08 ("ucm: use closefrom instead of close_range") -Signed-off-by: Jaroslav Kysela <[email protected]> ---- - src/ucm/ucm_exec.c | 11 ++++++----- - 1 file changed, 6 insertions(+), 5 deletions(-) - -diff --git a/src/ucm/ucm_exec.c b/src/ucm/ucm_exec.c -index 713039b4..c16a4cfd 100644 ---- a/src/ucm/ucm_exec.c -+++ b/src/ucm/ucm_exec.c -@@ -183,7 +183,7 @@ static int parse_args(char ***argv, int argc, const char *cmd) - */ - int uc_mgr_exec(const char *prog) - { -- pid_t p, f, maxfd; -+ pid_t p, f; - int err = 0, status; - char bin[PATH_MAX]; - struct sigaction sa; -@@ -212,8 +212,6 @@ int uc_mgr_exec(const char *prog) - prog = bin; - } - -- maxfd = sysconf(_SC_OPEN_MAX); -- - /* - * block SIGCHLD signal - * ignore SIGINT and SIGQUIT in parent -@@ -262,8 +260,11 @@ int uc_mgr_exec(const char *prog) - #if HAVE_DECL_CLOSEFROM - closefrom(3); - #else -- for (f = 3; f < maxfd; f++) -- close(f); -+ { -+ pid_t maxfd = sysconf(_SC_OPEN_MAX); -+ for (f = 3; f < maxfd; f++) -+ close(f); -+ } - #endif - - /* install default handlers for the forked process */
