From: Geoffrey D. Bennett Date: Mon, 26 Jan 2026 17:22:15 +0000 (+1030) Subject: speaker-test: fix segfault with more than 16 channels X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=7c664bce146785546204478bc745bb7b454f5245;p=alsa-utils.git speaker-test: fix segfault with more than 16 channels get_channel_name() was accessing the channel_name array without bounds checking. When using more than 16 channels without a channel map, it would read past the end of the array and crash. Closes: https://github.com/alsa-project/alsa-utils/pull/319 Signed-off-by: Geoffrey D. Bennett Signed-off-by: Jaroslav Kysela --- diff --git a/speaker-test/speaker-test.c b/speaker-test/speaker-test.c index d3fec2b..4bf90e3 100644 --- a/speaker-test/speaker-test.c +++ b/speaker-test/speaker-test.c @@ -285,7 +285,9 @@ static const char *get_channel_name(int chn) return name ? name : "Unknown"; } #endif - return gettext(channel_name[chn]); + if (chn < MAX_CHANNELS) + return gettext(channel_name[chn]); + return "Unknown"; } static const int supported_formats[] = {