mirror of
https://github.com/torvalds/linux.git
synced 2024-11-27 14:41:39 +00:00
ALSA: timer: Info leak in snd_timer_user_tinterrupt()
The "r1" struct has memory holes. We clear it with memset on one path where it is used but not the other. Let's just memset it at the start of the function so it's always safe. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
e8ed68205f
commit
a8c006aafe
@ -1277,6 +1277,7 @@ static void snd_timer_user_tinterrupt(struct snd_timer_instance *timeri,
|
||||
struct timespec tstamp;
|
||||
int prev, append = 0;
|
||||
|
||||
memset(&r1, 0, sizeof(r1));
|
||||
memset(&tstamp, 0, sizeof(tstamp));
|
||||
spin_lock(&tu->qlock);
|
||||
if ((tu->filter & ((1 << SNDRV_TIMER_EVENT_RESOLUTION) |
|
||||
@ -1292,7 +1293,6 @@ static void snd_timer_user_tinterrupt(struct snd_timer_instance *timeri,
|
||||
}
|
||||
if ((tu->filter & (1 << SNDRV_TIMER_EVENT_RESOLUTION)) &&
|
||||
tu->last_resolution != resolution) {
|
||||
memset(&r1, 0, sizeof(r1));
|
||||
r1.event = SNDRV_TIMER_EVENT_RESOLUTION;
|
||||
r1.tstamp = tstamp;
|
||||
r1.val = resolution;
|
||||
|
Loading…
Reference in New Issue
Block a user