On 06/06/2011 11:21 PM, Jim Meyering wrote:
> H. Peter Anvin wrote:
>> On 06/05/2011 09:17 AM, Jim Meyering wrote:
>>>
>>> diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c
>>> index aeaf98f..111816c 100644
>>> --- a/libparted/arch/linux.c
>>> +++ b/libparted/arch/linux.c
>>> @@ -610,7 +610,11 @@ _get_linux_version ()
>>>
>>>          if (uname (&uts))
>>>                  return kver = 0;
>>> -        if (sscanf (uts.release, "%u.%u.%u", &major, &minor, &teeny) != 3)
>>> +        if (sscanf (uts.release, "%u.%u.%u", &major, &minor, &teeny) == 3)
>>> +                ; /* ok */
>>> +        else if (sscanf (uts.release, "%u.%u", &major, &minor) == 2)
>>> +                teeny = 0;
>>> +        else
>>>                  return kver = 0;
>>>
>>
>> How about:
>>
>> major = minor = teeny = 0;
>> sscanf(uts.release, "%u.%u.%u", &major, &minor, &teeny);
>>
>> return kver = KERNEL_VERSION(major, minor, teeny);
> 
> Thanks, that would work, modulo an invalid uts.release -- admittedly
> unlikely -- but I prefer not to ignore sscanf's return value.

Uh... in that case you set the return value to zero anyway!

        -hpa

-- 
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.


_______________________________________________
parted-devel mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/parted-devel

Reply via email to