ALSA: timer: Fix race at concurrent reads
Orabug:
23330854
[ Upstream commit
4dff5c7b7093b19c19d3a100f8a3ad87cb7cd9e7 ]
snd_timer_user_read() has a potential race among parallel reads, as
qhead and qused are updated outside the critical section due to
copy_to_user() calls. Move them into the critical section, and also
sanitize the relevant code a bit.
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
(cherry picked from commit
0163f1a71f10b25eae8d7019124cd7f1141b109a)
Signed-off-by: Dan Duval <dan.duval@oracle.com>