Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1333780 > unrolled thread

[PATCH 3.14 48/76] ALSA: timer: Fix wrong instance passed to slave callbacks

Started byGreg Kroah-Hartman <gregkh@linuxfoundation.org>
First post2016-02-15 00:30 +0100
Last post2016-02-15 00:30 +0100
Articles 1 — 1 participant

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH 3.14 48/76] ALSA: timer: Fix wrong instance passed to slave callbacks Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-02-15 00:30 +0100

#1333780 — [PATCH 3.14 48/76] ALSA: timer: Fix wrong instance passed to slave callbacks

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-02-15 00:30 +0100
Subject[PATCH 3.14 48/76] ALSA: timer: Fix wrong instance passed to slave callbacks
Message-ID<r2eh3-18x-1@gated-at.bofh.it>
3.14-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Takashi Iwai <tiwai@suse.de>

commit 117159f0b9d392fb433a7871426fad50317f06f7 upstream.

In snd_timer_notify1(), the wrong timer instance was passed for slave
ccallback function.  This leads to the access to the wrong data when
an incompatible master is handled (e.g. the master is the sequencer
timer and the slave is a user timer), as spotted by syzkaller fuzzer.

This patch fixes that wrong assignment.

BugLink: http://lkml.kernel.org/r/CACT4Y+Y_Bm+7epAb=8Wi=AaWd+DYS7qawX52qxdCfOfY49vozQ@mail.gmail.com
Reported-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 sound/core/timer.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/sound/core/timer.c
+++ b/sound/core/timer.c
@@ -414,7 +414,7 @@ static void snd_timer_notify1(struct snd
 	spin_lock_irqsave(&timer->lock, flags);
 	list_for_each_entry(ts, &ti->slave_active_head, active_list)
 		if (ts->ccallback)
-			ts->ccallback(ti, event + 100, &tstamp, resolution);
+			ts->ccallback(ts, event + 100, &tstamp, resolution);
 	spin_unlock_irqrestore(&timer->lock, flags);
 }
 

[toc] | [standalone]


Back to top | Article view | linux.kernel


csiph-web