[parted-devel] FYI, preparation for 2048-byte sector sizes across the board

Otavio Salvador otavio at debian.org
Fri Jun 1 19:27:35 UTC 2007


Jim Meyering <jim at meyering.net> writes:

> Otavio Salvador <otavio at debian.org> wrote:
>
>> Jim Meyering <jim at meyering.net> writes:
>>
>>> diff --git a/libparted/labels/bsd.c b/libparted/labels/bsd.c
>>> index 747a9c5..26a8b60 100644
>>> --- a/libparted/labels/bsd.c
>>> +++ b/libparted/labels/bsd.c
>>> @@ -141,30 +142,45 @@ alpha_bootblock_checksum (char *boot) {
>> <...>
>>>  static int
>>>  bsd_probe (const PedDevice *dev)
>>>  {
>>> -	char		boot[512];
>>> -	BSDRawLabel	*label;
>>> +	BSDRawLabel	*partition;
>>>
>>>  	PED_ASSERT (dev != NULL, return 0);
>>>
>>> -        if (dev->sector_size != 512)
>>> +        if (dev->sector_size < 512)
>>>                  return 0;
>>
>> Shouldn't it be:
>>            if (dev->sector_size%512 != 0)
>>                    return 0;
>
> Thanks for looking at it, but no.
>
> First, your replacement would mistakenly allow a dev->sector_size value
> of 0 through.  More importantly, there is already plenty of code (e.g.,
> in linux.c) that ensures it is a multiple of 512, so it would be redundant
> to check for that in each label/*.c's *_probe function.

Well but then we should "trust" the sector_size and continue. Maybe we
ought to have a static method to check it and use it in all code to
avoid mistakes?

-- 
        O T A V I O    S A L V A D O R
---------------------------------------------
 E-mail: otavio at debian.org      UIN: 5906116
 GNU/Linux User: 239058     GPG ID: 49A5F855
 Home Page: http://otavio.ossystems.com.br
---------------------------------------------
"Microsoft sells you Windows ... Linux gives
 you the whole house."



More information about the parted-devel mailing list