On Tue, Sep 04, 2012 at 04:51:53PM -0700, Brian C. Lane wrote: > > I'm looking for comments on this quick test patch. The problem is this: > > In Fedora we have a hybrid iso that also contains a couple of EFI boot > partitions in order to make it bootable on EFI systems and on Apple > harware. Parted is sometimes throwing an error when they are written to > a USB stick using dd and then examined with 'parted /dev/sdd p' or > parted -l > > I think the right way to fix this is to reallocate the buf with the new > size. The only other alternative I can see is to make > __disk_analyse_block_size always return an error when there is a > mismatch instead of prompting the user. > > I'm also not sure how we could write a good test case for this.
On re-reading that I realize I wasn't too clear as to what actually happens. When it examines the USB it hits this warning in _disk_analyse_block_size: Warning: The driver descriptor says the physical block size is 2048 bytes, but Linux says it is 512 bytes. If you tell it to ignore it will change the disk->dev->sector_size to 2048, then when it tries to read the ghost partitions in mac_read it will overrun the buffer and clobber the heap, which results in the next error causing a SIGSEGV as it tries to malloc space for the error message. -- Brian C. Lane | Anaconda Team | IRC: bcl #anaconda | Port Orchard, WA (PST8PDT)
pgpYv0qJot3uI.pgp
Description: PGP signature

