summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorIvan Orlov <ivan.orlov0322@gmail.com>2024-01-26 01:35:20 +0300
committerTakashi Iwai <tiwai@suse.de>2024-01-30 16:11:29 +0300
commitd1eb913c8df4574df2861db03d2411023bd7930a (patch)
treee214c664acd56155571621f36c9615db0bf942f7 /sound
parentf7c4cb4a3f77867612b45c6327f80eac58a8ce65 (diff)
downloadlinux-d1eb913c8df4574df2861db03d2411023bd7930a.tar.xz
ALSA: pcm: Fix snd_pcm_format_name function
Fix snd_pcm_format_name so it won't return NULL-pointer in case if it can't find the format in the 'snd_pcm_format_names' list. Return "Unknown" instead, as it is done if the number passed to the function is larger than a list size. Signed-off-by: Ivan Orlov <ivan.orlov0322@gmail.com> Link: https://lore.kernel.org/r/20240125223522.1122765-2-ivan.orlov0322@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound')
-rw-r--r--sound/core/pcm.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sound/core/pcm.c b/sound/core/pcm.c
index d0788126cbab..d9b338088d10 100644
--- a/sound/core/pcm.c
+++ b/sound/core/pcm.c
@@ -225,9 +225,11 @@ static const char * const snd_pcm_format_names[] = {
*/
const char *snd_pcm_format_name(snd_pcm_format_t format)
{
- if ((__force unsigned int)format >= ARRAY_SIZE(snd_pcm_format_names))
+ unsigned int format_num = (__force unsigned int)format;
+
+ if (format_num >= ARRAY_SIZE(snd_pcm_format_names) || !snd_pcm_format_names[format_num])
return "Unknown";
- return snd_pcm_format_names[(__force unsigned int)format];
+ return snd_pcm_format_names[format_num];
}
EXPORT_SYMBOL_GPL(snd_pcm_format_name);