sound: oss/sb_audio: cap value in sb201_audio_set_speed()
We set "s" before we have capped "speed" so it could be the wrong value. This could lead to a divide by zero bug. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
190006f9d6
commit
379170a42c
|
@ -442,7 +442,7 @@ static int sb201_audio_set_speed(int dev, int speed)
|
|||
{
|
||||
sb_devc *devc = audio_devs[dev]->devc;
|
||||
int tmp;
|
||||
int s = speed * devc->channels;
|
||||
int s;
|
||||
|
||||
if (speed > 0)
|
||||
{
|
||||
|
@ -452,6 +452,7 @@ static int sb201_audio_set_speed(int dev, int speed)
|
|||
speed = 44100;
|
||||
if (devc->opened & OPEN_READ && speed > 15000)
|
||||
speed = 15000;
|
||||
s = speed * devc->channels;
|
||||
devc->tconst = (256 - ((1000000 + s / 2) / s)) & 0xff;
|
||||
tmp = 256 - devc->tconst;
|
||||
speed = ((1000000 + tmp / 2) / tmp) / devc->channels;
|
||||
|
|
Loading…
Reference in New Issue