On Fri, May 18, 2007 at 09:02:15PM +0200, Christian Franke wrote: >Hi, > >Cygwin 1.5.24-2 segfaults on unaligned lseek() on raw block devices with >sector size >512 bytes. > >Testcases: >$ dd skip=1000 bs=2047 if=/dev/scd0 of=/dev/null > >$ ddrescue -c 1 /dev/scd0 file.iso > > >This is due to a fixed 512 byte buffer in fhandler_dev_floppy::lseek(). >It is still present in HEAD revision. > >The attached patch should fix. It should work for any sector size. >(Smoke-)tested with 1.5.24-2 (too busy to test with current CVS, sorry). > >2007-05-18 Christian Franke <[EMAIL PROTECTED]> > > * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Fixed segfault on > unaligned seek due to fixed size buffer. >
It seems like this could be done without the heavyweight use of malloc, like use an automatic array of length 512 + 4 and calculate an aligned address from that. cgf
