Sun Directory Server Enterprise Edition 7.0 Developer's Guide

Memory Concerns

This function should always be used after slapi_entry_alloc() , and never otherwise. For example:

Slapi_Entry *e = slapi_entry_alloc();
slapi_entry_init(e, NULL, NULL);

To set the DN in the entry:

slapi_sdn_set_dn_passin(slapi_entry_get_sdn(e), dn);

In this case, the dn argument is not copied, but is consumed by the function. To copy the argument, see the following example:

char *dn = slapi_ch_strdup(some_dn);
Slapi_Entry *e = slapi_entry_alloc();
slapi_entry_init(e, dn, NULL);

dn is not freed in this context, but is eventually be freed when slapi_entry_free() is called.