Selaa lähdekoodia

ALSA: timer - Add NULL-check for invalid slave timer

Just to be sure.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai 14 vuotta sitten
vanhempi
commit
94094c8aae
1 muutettua tiedostoa jossa 3 lisäystä ja 0 poistoa
  1. 3 0
      sound/core/timer.c

+ 3 - 0
sound/core/timer.c

@@ -328,6 +328,8 @@ int snd_timer_close(struct snd_timer_instance *timeri)
 		mutex_unlock(&register_mutex);
 		mutex_unlock(&register_mutex);
 	} else {
 	} else {
 		timer = timeri->timer;
 		timer = timeri->timer;
+		if (snd_BUG_ON(!timer))
+			goto out;
 		/* wait, until the active callback is finished */
 		/* wait, until the active callback is finished */
 		spin_lock_irq(&timer->lock);
 		spin_lock_irq(&timer->lock);
 		while (timeri->flags & SNDRV_TIMER_IFLG_CALLBACK) {
 		while (timeri->flags & SNDRV_TIMER_IFLG_CALLBACK) {
@@ -353,6 +355,7 @@ int snd_timer_close(struct snd_timer_instance *timeri)
 		}
 		}
 		mutex_unlock(&register_mutex);
 		mutex_unlock(&register_mutex);
 	}
 	}
+ out:
 	if (timeri->private_free)
 	if (timeri->private_free)
 		timeri->private_free(timeri);
 		timeri->private_free(timeri);
 	kfree(timeri->owner);
 	kfree(timeri->owner);