ALSA: synth: missing check for possible NULL after the call to kstrdup
authorAustin Kim <austin.kim@lge.com>
Tue, 9 Nov 2021 00:37:42 +0000 (00:37 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 18 Nov 2021 18:15:55 +0000 (19:15 +0100)
commit d159037abbe3412285c271bdfb9cdf19e62678ff upstream.

If kcalloc() return NULL due to memory starvation, it is possible for
kstrdup() to return NULL in similar case. So add null check after the call
to kstrdup() is made.

[ minor coding-style fix by tiwai ]

Signed-off-by: Austin Kim <austin.kim@lge.com>
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20211109003742.GA5423@raspberrypi
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
sound/synth/emux/emux.c

index 49d1976a132c02b2a06f772aa5e3b8c10a308593..5ed8e36d2e043d73c3653a281af136703c7301ab 100644 (file)
@@ -88,7 +88,7 @@ int snd_emux_register(struct snd_emux *emu, struct snd_card *card, int index, ch
        emu->name = kstrdup(name, GFP_KERNEL);
        emu->voices = kcalloc(emu->max_voices, sizeof(struct snd_emux_voice),
                              GFP_KERNEL);
-       if (emu->voices == NULL)
+       if (emu->name == NULL || emu->voices == NULL)
                return -ENOMEM;
 
        /* create soundfont list */