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

Re: (ITS#6556) test031 core dumps after applying first filter

slap_sl_free dumps core here because it gets passed a bogus bv_val (from 
the ma_value field of an instance of struct MatchingRuleAssertion). As far 
as I can see, the original bv_val gets clobbered in get_comp_filter 
(servers/slapd/component.c), line 350:

     bv->bv_val = cav.cav_ptr;

Commenting that line out fixes the core dump. I suspect that the 
assignment is there to support nested component filters (see lines 1039 et 
seq. in the same file).

Earlier versions of OpenLDAP had different logic in slap_sl_free, which 
skipped the offending pointer (and thus probably leaving a memory leak).