lineage_android_kernel_sams.../sound
Takashi Iwai fe88b8bc2e ALSA: seq: Fix missing error handling in snd_seq_timer_open()
commit 66efdc71d95887b652a742a5dae51fa834d71465 upstream.

snd_seq_timer_open() didn't catch the whole error path but let through
if the timer id is a slave.  This may lead to Oops by accessing the
uninitialized pointer.

 BUG: unable to handle kernel NULL pointer dereference at 00000000000002ae
 IP: [<ffffffff819b3477>] snd_seq_timer_open+0xe7/0x130
 PGD 785cd067 PUD 76964067 PMD 0
 Oops: 0002 [#4] SMP
 CPU 0
 Pid: 4288, comm: trinity-child7 Tainted: G      D W 3.9.0-rc1+ #100 Bochs Bochs
 RIP: 0010:[<ffffffff819b3477>]  [<ffffffff819b3477>] snd_seq_timer_open+0xe7/0x130
 RSP: 0018:ffff88006ece7d38  EFLAGS: 00010246
 RAX: 0000000000000286 RBX: ffff88007851b400 RCX: 0000000000000000
 RDX: 000000000000ffff RSI: ffff88006ece7d58 RDI: ffff88006ece7d38
 RBP: ffff88006ece7d98 R08: 000000000000000a R09: 000000000000fffe
 R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
 R13: ffff8800792c5400 R14: 0000000000e8f000 R15: 0000000000000007
 FS:  00007f7aaa650700(0000) GS:ffff88007f800000(0000) GS:0000000000000000
 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
 CR2: 00000000000002ae CR3: 000000006efec000 CR4: 00000000000006f0
 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
 Process trinity-child7 (pid: 4288, threadinfo ffff88006ece6000, task ffff880076a8a290)
 Stack:
  0000000000000286 ffffffff828f2be0 ffff88006ece7d58 ffffffff810f354d
  65636e6575716573 2065756575712072 ffff8800792c0030 0000000000000000
  ffff88006ece7d98 ffff8800792c5400 ffff88007851b400 ffff8800792c5520
 Call Trace:
  [<ffffffff810f354d>] ? trace_hardirqs_on+0xd/0x10
  [<ffffffff819b17e9>] snd_seq_queue_timer_open+0x29/0x70
  [<ffffffff819ae01a>] snd_seq_ioctl_set_queue_timer+0xda/0x120
  [<ffffffff819acb9b>] snd_seq_do_ioctl+0x9b/0xd0
  [<ffffffff819acbe0>] snd_seq_ioctl+0x10/0x20
  [<ffffffff811b9542>] do_vfs_ioctl+0x522/0x570
  [<ffffffff8130a4b3>] ? file_has_perm+0x83/0xa0
  [<ffffffff810f354d>] ? trace_hardirqs_on+0xd/0x10
  [<ffffffff811b95ed>] sys_ioctl+0x5d/0xa0
  [<ffffffff813663fe>] ? trace_hardirqs_on_thunk+0x3a/0x3f
  [<ffffffff81faed69>] system_call_fastpath+0x16/0x1b

Reported-and-tested-by: Tommi Rantala <tt.rantala@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-03-20 13:04:59 -07:00
..
aoa ALSA: aoa: Convert onyx and tas codec drivers to module_i2c_driver 2012-01-27 15:18:28 +01:00
arm ALSA: pxa27x: fix ac97 warm reset 2013-01-17 08:50:55 -08:00
atmel dmaengine/dw_dmac: Fix dw_dmac user drivers to adapt to slave_config changes 2012-02-22 18:15:39 +05:30
core ALSA: seq: Fix missing error handling in snd_seq_timer_open() 2013-03-20 13:04:59 -07:00
drivers ALSA: aloop - add locking to timer access 2012-10-13 05:38:51 +09:00
firewire IEEE 1394 (FireWire) subsystem updates post v3.3: 2012-03-22 20:31:15 -07:00
i2c [media] tea575x: fix HW seek 2012-03-19 11:28:52 -03:00
isa ALSA: sound/isa/sscape.c: add missing resource-release code 2012-04-10 08:42:07 +02:00
mips ALSA: Convert mips directory to module_platform_driver 2011-11-24 13:03:02 +01:00
oss sound: sound/oss/msnd_pinnacle.c: add vfrees 2012-04-10 08:41:54 +02:00
parisc
pci Revert "ALSA: hda - hdmi: Make jacks phantom, if they're not detectable" 2013-03-14 11:29:52 -07:00
pcmcia ALSA: module_param: make bool parameters really bool 2011-12-19 10:34:41 +01:00
ppc Merge branch 'topic/misc' into for-linus 2012-01-12 09:59:14 +01:00
sh ALSA: module_param: make bool parameters really bool 2011-12-19 10:34:41 +01:00
soc ASoC: wm2200: correct IN2L and IN3L digital mute 2013-02-28 06:59:04 -08:00
sparc ALSA: module_param: make bool parameters really bool 2011-12-19 10:34:41 +01:00
spi ALSA: Convert at73c213 to module_spi_driver 2012-01-27 15:18:36 +01:00
synth
usb ALSA: usb-audio: fix Roland A-PRO support 2013-02-28 06:59:02 -08:00
Kconfig
Makefile
ac97_bus.c
last.c ALSA: workaround: change the timing of alsa_sound_last_init() 2012-04-19 13:51:54 +02:00
sound_core.c switch device_get_devnode() and ->devnode() to umode_t * 2012-01-03 22:54:55 -05:00
sound_firmware.c