2001-03-16 19:11:31

by David Mansfield

[permalink] [raw]
Subject: Re: [PATCH] fix a bug in ioctl(CDROMREADAUDIO) in cdrom.c in 2.2

Pierre Etchemaite wrote:
>
> Le 14-Mar-2001, Jani Jaakkola ?crivait :
> >
> > Using ioctl(CDROMREADAUDIO) with nframes argument being larger than 8 and
> > not divisible by 8 causes kernel to read and return more audio data than
> > was requested. This is bad since it clobbers up processes memory
> > (I noticed this when my patched cdparanoia segfaulted).
>
> Same thing for 2.4.2.
>
> Is my allocation loop "over engineering", or just plain bad thing to do ?
>

I've been running this (or close: my version tries 8 frames, then jumps
immediately to 1, without trying 4 and 2 in between if the kmalloc
fails) since it was changed. Without such a patch, my CDDA read speed
drops to 25% the original rate. You also have the fix that started the
thread!

Jens (cdrom maintainer) said he was working on a more elegant solution,
but to me, such a simple fix as yours should go in the kernel in the
meantime. Jens?

--
David Mansfield (718) 963-2020
[email protected]
Ultramaster Group, LLC http://www.ultramaster.com