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

no return value in entry_dup() for servers/slapd/entry.c (ITS#2799)



Full_Name: Darin Broady
Version: 2.2.2-beta
OS: Irix 6.5.19m & Solaris 8 07/03
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (192.146.101.11)


In <root>/servers/slapd/entry.c, there is a function called entry_dup() that
does not return the ret value allocated.  On SGI Irix 6.5.19m with MIPSpro 7.4m
compilers, this causes a crash in any code that then attempts to dereference
this value.  On Solaris 8 with the Forte 6 Update 2 compiler, for some reason it
didn't crash and it returned the ret value anyways.

I specifically saw the crash while writing a SLAPI plugin, which called in this
order:
   search = slapi_search_internal(...)
   slapi_pblock_get(search, SLAPI_PLUGIN_INTOP_SEARCH_ENTRIES, &entries)
   slapi_entry_attr_find(entries[0], "shadowExpire", &attr)
The call to slapi_entry_attr_find() would cause a SIGBUS error in attr_find()
because the memory address was not correct.

I have checked the CVSWeb and saw that lukeh has committed a change to HEAD that
fixes this issue.  I would like to make sure that it gets incorporated into the
OpenLDAP-2.2.2 next release.