summaryrefslogtreecommitdiff
blob: 928c1ef78f72793bd8499227f9d87878a5142388 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
commit 82e68f7ffec3800425f2391c8c86277606860442
Author: Willy Tarreau <w@1wt.eu>
Date:   Sat Aug 2 18:25:16 2008 +0200

    sound: ensure device number is valid in snd_seq_oss_synth_make_info
    
    snd_seq_oss_synth_make_info() incorrectly reports information
    to userspace without first checking for the validity of the
    device number, leading to possible information leak (CVE-2008-3272).
    
    Reported-By: Tobias Klein <tk@trapkit.de>
    Acked-and-tested-by: Takashi Iwai <tiwai@suse.de>
    Cc: stable@kernel.org
    Signed-off-by: Willy Tarreau <w@1wt.eu>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

diff --git a/sound/core/seq/oss/seq_oss_synth.c b/sound/core/seq/oss/seq_oss_synth.c
index 558dadb..e024e45 100644
--- a/sound/core/seq/oss/seq_oss_synth.c
+++ b/sound/core/seq/oss/seq_oss_synth.c
@@ -604,6 +604,9 @@ snd_seq_oss_synth_make_info(struct seq_oss_devinfo *dp, int dev, struct synth_in
 {
 	struct seq_oss_synth *rec;
 
+	if (dev < 0 || dev >= dp->max_synthdev)
+		return -ENXIO;
+
 	if (dp->synths[dev].is_midi) {
 		struct midi_info minf;
 		snd_seq_oss_midi_make_info(dp, dp->synths[dev].midi_mapped, &minf);