From: Takashi Iwai <tiwai@suse.de>
Date: Mon, 8 Aug 2011 10:24:46 +0000 (+0200)
Subject: ALSA: timer - Fix Oops at closing slave timer
X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;h=0584ffa548b6e59aceb027112f23a55f0133400e;p=openwrt%2Fstaging%2Fblogic.git

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>
---

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;