mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 04:10:18 +09:00
ALSA: timer: Reject user params with too small ticks
am: 5ac9276dd1
Change-Id: I10e2d71df6afce32a43d3d7a9656937a4113ab7b
This commit is contained in:
@@ -1702,9 +1702,21 @@ static int snd_timer_user_params(struct file *file,
|
||||
return -EBADFD;
|
||||
if (copy_from_user(¶ms, _params, sizeof(params)))
|
||||
return -EFAULT;
|
||||
if (!(t->hw.flags & SNDRV_TIMER_HW_SLAVE) && params.ticks < 1) {
|
||||
err = -EINVAL;
|
||||
goto _end;
|
||||
if (!(t->hw.flags & SNDRV_TIMER_HW_SLAVE)) {
|
||||
u64 resolution;
|
||||
|
||||
if (params.ticks < 1) {
|
||||
err = -EINVAL;
|
||||
goto _end;
|
||||
}
|
||||
|
||||
/* Don't allow resolution less than 1ms */
|
||||
resolution = snd_timer_resolution(tu->timeri);
|
||||
resolution *= params.ticks;
|
||||
if (resolution < 1000000) {
|
||||
err = -EINVAL;
|
||||
goto _end;
|
||||
}
|
||||
}
|
||||
if (params.queue_size > 0 &&
|
||||
(params.queue_size < 32 || params.queue_size > 1024)) {
|
||||
|
||||
Reference in New Issue
Block a user