| From 9a47e9cff994f37f7f0dbd9ae23740d0f64f9fe6 Mon Sep 17 00:00:00 2001 |
| From: Kangjie Lu <kangjielu@gmail.com> |
| Date: Tue, 3 May 2016 16:44:20 -0400 |
| Subject: ALSA: timer: Fix leak in events via snd_timer_user_ccallback |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Kangjie Lu <kangjielu@gmail.com> |
| |
| commit 9a47e9cff994f37f7f0dbd9ae23740d0f64f9fe6 upstream. |
| |
| The stack object “r1” has a total size of 32 bytes. Its field |
| “event” and “val” both contain 4 bytes padding. These 8 bytes |
| padding bytes are sent to user without being initialized. |
| |
| Signed-off-by: Kangjie Lu <kjlu@gatech.edu> |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| sound/core/timer.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/sound/core/timer.c |
| +++ b/sound/core/timer.c |
| @@ -1208,6 +1208,7 @@ static void snd_timer_user_ccallback(str |
| tu->tstamp = *tstamp; |
| if ((tu->filter & (1 << event)) == 0 || !tu->tread) |
| return; |
| + memset(&r1, 0, sizeof(r1)); |
| r1.event = event; |
| r1.tstamp = *tstamp; |
| r1.val = resolution; |