openssl@mkarcher.dialup.fu-berlin.de wrote:
slapd gets terminated by libc with an "invalid free" error message when using the baseObject configuration option (whether with or without file) at the time of the first query.
This is caused by freeing an entry using "free" that has been allocated using "entry_dup". This does not match (any more?). Essentially what the code was trying to to is to duplicate the sql_baseObject to bsi_e. The fix I suggest adds a function "entry_dup_to" to slapd so that backends can do this operation cleanly without having to create a temporary dynamic object there is no obvious clean way to get rid of.
I'd rather have a function that returns the entry struct to the pool without calling entry_clean(), to avoid as much as possible code duplication. In any case, good catch.
All in all, I favored using your patch as is. It's now in HEAD, please test. Thanks, p.