[SSSD] [PATCH] pysss: test return value of realloc.

Pavel Reichl preichl at redhat.com
Wed Aug 27 15:54:57 UTC 2014


On 08/27/2014 05:42 PM, Lukas Slebodnik wrote:
> On (27/08/14 17:21), Pavel Reichl wrote:
>> On 08/27/2014 05:12 PM, Lukas Slebodnik wrote:
>>> On (27/08/14 17:10), Pavel Reichl wrote:
>>>> On 08/27/2014 10:09 AM, Lukas Slebodnik wrote:
>>>>> ehlo,
>>>>>
>>>>> warning reported by coverity
>>>>>
>>>>> patch is attached
>>>>>
>>>>> LS
>>>> As I understand the code there is no way that 0 could be passed as second
>>>> argument to the realloc call, right? Because that would lead to freeing same
>>>> memory twice.
>>>>
>>>> Would it be more defensive approach to test for zero argument explicitly?
>>>> What do you think Lukas?
>>>>
>>> No,
>>>
>>> NULL can be returned if there is not memory for allocation (ENOMEM).
>>> For example you will try to allocate 2^31 bytes
>>>
>>> LS
>> NULL can be also returned if you pass 0 as the size parameter, which would in
>> our case lead to calling free on the same pointer twice, which is baaaad!
>>
>> If you are explicitly interested in ENOMEM case, you may consider checking
>> value of errno.
>>
>> Still I think it is better to test value of size parameter.
>>
> I do not agree.
>
> Documentation of getgrouplist is clear.
>
> RETURN VALUE
>        If the number of groups of which user is a member *is less than or equal*
>        to *ngroups, then the value *ngroups is returned.
>
>        If  the  user  is  a member of more than *ngroups groups, then getgrouā€
>        plist() returns -1.  In this case, the value returned in  *ngroups  can
>        be used to resize the buffer passed to a further call getgrouplist().
>
> And the initial value of ngroups is 32. It means it cannot be lower.
>
> LS
OK, I agree it is supposed to work, I'm just worried that next time 
anybody reading the code will have to look to man pages to make sure it 
won't crash.

tentative ack


> _______________________________________________
> sssd-devel mailing list
> sssd-devel at lists.fedorahosted.org
> https://lists.fedorahosted.org/mailman/listinfo/sssd-devel




More information about the sssd-devel mailing list