• Takashi Iwai's avatar
    ALSA: timer: Fix race between read and ioctl · d11662f4
    Takashi Iwai authored
    The read from ALSA timer device, the function snd_timer_user_tread(),
    may access to an uninitialized struct snd_timer_user fields when the
    read is concurrently performed while the ioctl like
    snd_timer_user_tselect() is invoked.  We have already fixed the races
    among ioctls via a mutex, but we seem to have forgotten the race
    between read vs ioctl.
    
    This patch simply applies (more exactly extends the already applied
    range of) tu->ioctl_lock in snd_timer_user_tread() for closing the
    race window.
    Reported-by: default avatarAlexander Potapenko <glider@google.com>
    Tested-by: default avatarAlexander Potapenko <glider@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    d11662f4
timer.c 53.6 KB