[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: (ITS#8940) FR: LDAP_AVA_FREE_ATTR in ldapava_free()



Erik Lax wrote:
> In our case the pointer/allocated string ownership is preferable moved to the LDAPAVA object for both the value and attribute as the char* does not have the
> same lifetime as the LDAPAVA object.

Then your app is almost certainly mis-designed. The set of attributeTypes in a schema is always finite
and usually small; alloc'ing and free'ing the same strings over and over is foolish.

Out of curiosity, what is your software actually trying to do?
> 
> Regards
> Erik
> 
> On 2018-11-30 14:51, Howard Chu wrote:
>> erik@halon.se wrote:
>>> Full_Name: Erik Lax
>>> Version: 2.4.46
>>> OS: Linux
>>> URL:
>>> Submission from: (NULL) (212.85.68.184)
>>>
>>>
>>> Hi,
>>>
>>> It's possible to set the flag LDAP_AVA_FREE_VALUE to clear ber values on the
>>> LDAPAVA structure in ldapava_free() but it's not possible to set the
>>> LDAP_AVA_FREE_ATTR to clear attributes. I suspect OpenLDAP internals does not
>>> need to free attributes in this way (hence the missing code).
>> Attribute Types are usually constant strings, so right, there should be no need to free them.
>>
>>> I'm building a custom LDAPAVA (LDAPDN) object and it would be useful to be able
>>> to set this flags to have it properly clean up both values and attributes in
>>> ldap_dnfree().
>> It would be better to simply avoid the need to free them.
>>
> 
> 


-- 
  -- Howard Chu
  CTO, Symas Corp.           http://www.symas.com
  Director, Highland Sun     http://highlandsun.com/hyc/
  Chief Architect, OpenLDAP  http://www.openldap.org/project/