[Date Prev][Date Next]
Re: when to use ldap_msgfree?
> I need some help with the libldap, guess someone can help me.
> * When I issue two ldap_search_s calls in sequence, consume all their
> results between the two calls and use the same result pointer, is it
> necessary to call ldap_msgfree on this pointer before the second
Yes. Better said, you should free the result by calling ldap_msgfree
after you are through with it. If you don't, you'll have a memory leak.
> * When I issue an ldap_search_s, go with the result pointer to
> ldap_first_entry collecting the return value in a pointer named entry and
> then, after comsuming the result, call ldap_msgfree on entry, has this any
> effect on the result pointer?
It is incorrect to call ldap_msgfree on an individual entry returned
by ldap_first_entry() or ldap_next_entry(). Ldap_msgfree() frees the
entire chain of results, following the same linked lists that
ldap_next_entry() follows. By doing what you suggest, you will free
the results before you use them, which is unsafe, though you might
get away with it sometimes.