summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2011-08-08 12:24:46 +0200
committerTakashi Iwai <tiwai@suse.de>2011-08-08 12:24:46 +0200
commit0584ffa548b6e59aceb027112f23a55f0133400e (patch)
treeec5b83bf7323428554f6170fc421f022b51426df
parent67ada8367c323ce13d0268c87cf09bf8af956e92 (diff)
downloadlinux-0584ffa548b6e59aceb027112f23a55f0133400e.tar.gz
linux-0584ffa548b6e59aceb027112f23a55f0133400e.tar.bz2
linux-0584ffa548b6e59aceb027112f23a55f0133400e.zip
ALSA: timer - Fix Oops at closing slave timer
A slave-timer instance has no timer reference, and this results in NULL-dereference at stopping the timer, typically called at closing the device. Reference: https://bugzilla.kernel.org/show_bug.cgi?id=40682 Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/core/timer.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sound/core/timer.c b/sound/core/timer.c
index 7c1cbf0a0dc4..950eed0c098e 100644
--- a/sound/core/timer.c
+++ b/sound/core/timer.c
@@ -531,6 +531,8 @@ int snd_timer_stop(struct snd_timer_instance *timeri)
if (err < 0)
return err;
timer = timeri->timer;
+ if (!timer)
+ return -EINVAL;
spin_lock_irqsave(&timer->lock, flags);
timeri->cticks = timeri->ticks;
timeri->pticks = 0;