[SSSD] [PATCH] Do not change attr pointer with realloc

Pavel Březina pbrezina at redhat.com
Thu Apr 18 08:48:49 UTC 2013


On 04/12/2013 12:25 PM, Jakub Hrozek wrote:
> https://fedorahosted.org/sssd/ticket/1799
>
> One peculiarity of the sysdb_attrs_get_el interface is that if the
> attribute does not exist, then the attrs array is reallocated and the
> element is created. But in case other pointers are already pointing
> into the array, the realloc might invalidate them.
>
> One such case was in the sdap_process_ghost_members function where if
> the group had no members, the "gh" pointer requested earlier might have
> been invalidated by the realloc in order to create the member element
>
> I'm actually pondering the idea of renaming the interface to make it
> clear that if you request a nonexistent attr, the pointer already
> pointing there might become invalid.

Nack.

Please, add a comment explaining that you just create a dummy element 
that have zero values. Or set memberel->value and num_values explicitly.

Also, you don't really have to set memberel->name - it is not used 
anywhere and it doesn't add any semantic value. However, if you want to 
create a complete element, I'm ok with it.

Thanks.






More information about the sssd-devel mailing list