diff mbox series

ALSA: seq: oss: Fix missing error check in snd_seq_oss_synth_make_info()

Message ID 20210115093428.15882-1-tiwai@suse.de (mailing list archive)
State Accepted
Commit 217bfbb8b0bfa24619b11ab75c135fec99b99b20
Headers show
Series ALSA: seq: oss: Fix missing error check in snd_seq_oss_synth_make_info() | expand

Commit Message

Takashi Iwai Jan. 15, 2021, 9:34 a.m. UTC
snd_seq_oss_synth_make_info() didn't check the error code from
snd_seq_oss_midi_make_info(), and this leads to the call of strlcpy()
with the uninitialized string as the source, which may lead to the
access over the limit.

Add the proper error check for avoiding the failure.

Reported-by: syzbot+e42504ff21cff05a595f@syzkaller.appspotmail.com
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
 sound/core/seq/oss/seq_oss_synth.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff mbox series


diff --git a/sound/core/seq/oss/seq_oss_synth.c b/sound/core/seq/oss/seq_oss_synth.c
index 11554d0412f0..1b8409ec2c97 100644
--- a/sound/core/seq/oss/seq_oss_synth.c
+++ b/sound/core/seq/oss/seq_oss_synth.c
@@ -611,7 +611,8 @@  snd_seq_oss_synth_make_info(struct seq_oss_devinfo *dp, int dev, struct synth_in
 	if (info->is_midi) {
 		struct midi_info minf;
-		snd_seq_oss_midi_make_info(dp, info->midi_mapped, &minf);
+		if (snd_seq_oss_midi_make_info(dp, info->midi_mapped, &minf))
+			return -ENXIO;
 		inf->synth_type = SYNTH_TYPE_MIDI;
 		inf->synth_subtype = 0;
 		inf->nr_voices = 16;