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

Re: (ITS#4860) Sets' enhancement



This is a multi-part message in MIME format.
--------------070701020707050408020200
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit

jclarke@linagora.com a écrit :
> ando@sys-net.it a écrit :
>> raphael.ouazana@linagora.com wrote:
>>
>>> It seems OK with HEAD, but only if I revert this patch:
>>> http://www.openldap.org/devel/cvsweb.cgi/servers/slapd/sets.c.diff?r1=1.28.2.1&r2=1.28.2.2&hideattic=1&sortbydate=0&f=h
>>>
>>> With this patch, I get a segfault.
>> I have just committed a cleanup of the slap_set_join() function that
>> should be consistent.  It should fix a leak in case of '&' on
>> overlapping sets, and consistently handle memory.  Can you please test
>> it and point out failures?  If you get any, please post the rules that
>> cause them, as those I could design worked fine (tested with valgrind).
> 
> I am one of Raphael's colleagues, answering on his behalf.
> 
> I've tested your latest commit, and most of our tests now run great.
> However, I still get a segault with the two rules below. Please note
> that this segfault only happens when *both* rules are present, each one
> by itself does not cause a segfault :
> 
>> access to dn.sub="ou=Affectations,dc=linagora,dc=org" attrs=sigleAbrege,labeledURI,mailRoutingAddress,telephoneNumber,facsimileTelephoneNumber,entry
>>         by set="([ldap:///] + (([ldap:///] + ((([ldap:///] + this + [??base?(|(objectClass=affectationLiee)(objectClass=affectationSemiLibre))])/entryDN)/-0) + [??base?])/responsable) + [??base?(|(administrateurResponsable=] + user + [)(administrateur=] + user + [)(membre=] + user + [))])/entryDN" +rscx
>>         by * break
> 
>> access to dn.sub="ou=Affectations,dc=linagora,dc=org" attrs=domaineMessagerie,finValidite,identifiantHarpegeStructure,responsable,objectClass,entry
>>         by set="[ldap:///] + (((([ldap:///] + this + [??base?(|(objectClass=affectationLiee)(objectClass=affectationSemiLibre))])/entryDN)/-100) & ((([ldap:///] + user + [??base?(objectClass=personnel)])/entryDN)/-100)) + [??sub?entryDN=] + user/entryDN" +rscx
>>         by * break
> 
> I'm afraid that we use quite a few specific schemas so you may not be
> able to reproduce this easily. However, I hope these rules will enable
> you to determine the problematic case. If necessary, I could prepare a
> data and schema extract to reproduce the problem.

Oh, and I forgot, please find attached the output from valgrind when
running these rules.

Jon

-- 
Jonathan Clarke

Cellule OSSA - Groupe LINAGORA
27 rue de Berri, 75008 Paris
Tél: 01 58 18 68 28, fax: 01 58 18 68 29
http://www.linagora.com - http://www.08000linux.com

--------------070701020707050408020200
Content-Type: text/plain;
 name="valgrind.txt"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="valgrind.txt"

=> dn: [5] ou=affectations,dc=linagora,dc=fr
=> acl_get: [5] matched
=> dn: [6] ou=affectations,dc=linagora,dc=fr
=> acl_get: [6] matched
=> acl_get: [6] attr objectClass
=> acl_mask: access to entry "ou=4,ou=0132,ou=0126,ou=SG,ou=UPMC,ou=Affectations,dc=linagora,dc=fr", attr "objectClass" requested
=> acl_mask: to value by "uid=test,ou=machines,dc=linagora,dc=fr", (=0) 
<= check a_set_pat: [ldap:///] + (((([ldap:///] + this + [??base?(|(objectClass=affectationLiee)(objectClass=affectationSemiLibre))])/entryDN)/-100) & ((([ldap:///] + user + [??base?(objectClass=personnel)])/entryDN)/-100)) + [??sub?entryDN=] + user/entryDN
=> access_allowed: search access to "ou=4,ou=0132,ou=0126,ou=SG,ou=UPMC,ou=Affectations,dc=linagora,dc=fr" "entry" requested
<= root access granted
=> access_allowed: search access granted by manage(=mwrscxd)
=> access_allowed: search access to "ou=4,ou=0132,ou=0126,ou=SG,ou=UPMC,ou=Affectations,dc=linagora,dc=fr" "objectClass" requested
<= root access granted
=> access_allowed: search access granted by manage(=mwrscxd)
=> access_allowed: search access to "ou=4,ou=0132,ou=0126,ou=SG,ou=UPMC,ou=Affectations,dc=linagora,dc=fr" "objectClass" requested
<= root access granted
=> access_allowed: search access granted by manage(=mwrscxd)
=> access_allowed: search access to "uid=test,ou=Machines,dc=linagora,dc=fr" "entry" requested
<= root access granted
=> access_allowed: search access granted by manage(=mwrscxd)
=> access_allowed: search access to "uid=test,ou=Machines,dc=linagora,dc=fr" "objectClass" requested
<= root access granted
=> access_allowed: search access granted by manage(=mwrscxd)
==28687== 
==28687== Thread 3:
==28687== Invalid read of size 4
==28687==    at 0x80AE729: slap_set_size (sets.c:34)
==28687==    by 0x80AE921: slap_set_join (sets.c:269)
==28687==    by 0x80AF1C2: slap_set_filter (sets.c:612)
==28687==    by 0x80864C9: acl_match_set (acl.c:2299)
==28687==    by 0x8089785: slap_access_allowed (acl.c:1621)
==28687==    by 0x808B6C3: fe_access_allowed (acl.c:311)
==28687==    by 0x80C892F: over_access_allowed (backover.c:314)
==28687==    by 0x80872C3: access_allowed_mask (acl.c:413)
==28687==    by 0x8083BCE: test_ava_filter (filterentry.c:545)
==28687==    by 0x80843E8: test_filter (filterentry.c:88)
==28687==    by 0x80DC90D: bdb_search (search.c:844)
==28687==    by 0x80679F5: fe_op_search (search.c:368)
==28687==  Address 0x7226C34 is 4 bytes inside a block of size 24 free'd
==28687==    at 0x402123A: free (vg_replace_malloc.c:233)
==28687==    by 0x80AE892: slap_set_dispose (sets.c:74)
==28687==    by 0x80AE8E8: slap_set_join (sets.c:354)
==28687==    by 0x80AF1C2: slap_set_filter (sets.c:612)
==28687==    by 0x80864C9: acl_match_set (acl.c:2299)
==28687==    by 0x8089785: slap_access_allowed (acl.c:1621)
==28687==    by 0x808B6C3: fe_access_allowed (acl.c:311)
==28687==    by 0x80C892F: over_access_allowed (backover.c:314)
==28687==    by 0x80872C3: access_allowed_mask (acl.c:413)
==28687==    by 0x8083BCE: test_ava_filter (filterentry.c:545)
==28687==    by 0x80843E8: test_filter (filterentry.c:88)
==28687==    by 0x80DC90D: bdb_search (search.c:844)
==28687== 
==28687== Invalid read of size 4
==28687==    at 0x80AE735: slap_set_size (sets.c:34)
==28687==    by 0x80AE921: slap_set_join (sets.c:269)
==28687==    by 0x80AF1C2: slap_set_filter (sets.c:612)
==28687==    by 0x80864C9: acl_match_set (acl.c:2299)
==28687==    by 0x8089785: slap_access_allowed (acl.c:1621)
==28687==    by 0x808B6C3: fe_access_allowed (acl.c:311)
==28687==    by 0x80C892F: over_access_allowed (backover.c:314)
==28687==    by 0x80872C3: access_allowed_mask (acl.c:413)
==28687==    by 0x8083BCE: test_ava_filter (filterentry.c:545)
==28687==    by 0x80843E8: test_filter (filterentry.c:88)
==28687==    by 0x80DC90D: bdb_search (search.c:844)
==28687==    by 0x80679F5: fe_op_search (search.c:368)
==28687==  Address 0x7226C3C is 12 bytes inside a block of size 24 free'd
==28687==    at 0x402123A: free (vg_replace_malloc.c:233)
==28687==    by 0x80AE892: slap_set_dispose (sets.c:74)
==28687==    by 0x80AE8E8: slap_set_join (sets.c:354)
==28687==    by 0x80AF1C2: slap_set_filter (sets.c:612)
==28687==    by 0x80864C9: acl_match_set (acl.c:2299)
==28687==    by 0x8089785: slap_access_allowed (acl.c:1621)
==28687==    by 0x808B6C3: fe_access_allowed (acl.c:311)
==28687==    by 0x80C892F: over_access_allowed (backover.c:314)
==28687==    by 0x80872C3: access_allowed_mask (acl.c:413)
==28687==    by 0x8083BCE: test_ava_filter (filterentry.c:545)
==28687==    by 0x80843E8: test_filter (filterentry.c:88)
==28687==    by 0x80DC90D: bdb_search (search.c:844)
==28687== 
==28687== Invalid read of size 4
==28687==    at 0x80AEC5E: slap_set_join (sets.c:298)
==28687==    by 0x80AF1C2: slap_set_filter (sets.c:612)
==28687==    by 0x80864C9: acl_match_set (acl.c:2299)
==28687==    by 0x8089785: slap_access_allowed (acl.c:1621)
==28687==    by 0x808B6C3: fe_access_allowed (acl.c:311)
==28687==    by 0x80C892F: over_access_allowed (backover.c:314)
==28687==    by 0x80872C3: access_allowed_mask (acl.c:413)
==28687==    by 0x8083BCE: test_ava_filter (filterentry.c:545)
==28687==    by 0x80843E8: test_filter (filterentry.c:88)
==28687==    by 0x80DC90D: bdb_search (search.c:844)
==28687==    by 0x80679F5: fe_op_search (search.c:368)
==28687==    by 0x80C7CA0: overlay_op_walk (backover.c:652)
==28687==  Address 0x7226C34 is 4 bytes inside a block of size 24 free'd
==28687==    at 0x402123A: free (vg_replace_malloc.c:233)
==28687==    by 0x80AE892: slap_set_dispose (sets.c:74)
==28687==    by 0x80AE8E8: slap_set_join (sets.c:354)
==28687==    by 0x80AF1C2: slap_set_filter (sets.c:612)
==28687==    by 0x80864C9: acl_match_set (acl.c:2299)
==28687==    by 0x8089785: slap_access_allowed (acl.c:1621)
==28687==    by 0x808B6C3: fe_access_allowed (acl.c:311)
==28687==    by 0x80C892F: over_access_allowed (backover.c:314)
==28687==    by 0x80872C3: access_allowed_mask (acl.c:413)
==28687==    by 0x8083BCE: test_ava_filter (filterentry.c:545)
==28687==    by 0x80843E8: test_filter (filterentry.c:88)
==28687==    by 0x80DC90D: bdb_search (search.c:844)
==28687== 
==28687== Invalid read of size 4
==28687==    at 0x80AEC96: slap_set_join (sets.c:304)
==28687==    by 0x80AF1C2: slap_set_filter (sets.c:612)
==28687==    by 0x80864C9: acl_match_set (acl.c:2299)
==28687==    by 0x8089785: slap_access_allowed (acl.c:1621)
==28687==    by 0x808B6C3: fe_access_allowed (acl.c:311)
==28687==    by 0x80C892F: over_access_allowed (backover.c:314)
==28687==    by 0x80872C3: access_allowed_mask (acl.c:413)
==28687==    by 0x8083BCE: test_ava_filter (filterentry.c:545)
==28687==    by 0x80843E8: test_filter (filterentry.c:88)
==28687==    by 0x80DC90D: bdb_search (search.c:844)
==28687==    by 0x80679F5: fe_op_search (search.c:368)
==28687==    by 0x80C7CA0: overlay_op_walk (backover.c:652)
==28687==  Address 0x7226C30 is 0 bytes inside a block of size 24 free'd
==28687==    at 0x402123A: free (vg_replace_malloc.c:233)
==28687==    by 0x80AE892: slap_set_dispose (sets.c:74)
==28687==    by 0x80AE8E8: slap_set_join (sets.c:354)
==28687==    by 0x80AF1C2: slap_set_filter (sets.c:612)
==28687==    by 0x80864C9: acl_match_set (acl.c:2299)
==28687==    by 0x8089785: slap_access_allowed (acl.c:1621)
==28687==    by 0x808B6C3: fe_access_allowed (acl.c:311)
==28687==    by 0x80C892F: over_access_allowed (backover.c:314)
==28687==    by 0x80872C3: access_allowed_mask (acl.c:413)
==28687==    by 0x8083BCE: test_ava_filter (filterentry.c:545)
==28687==    by 0x80843E8: test_filter (filterentry.c:88)
==28687==    by 0x80DC90D: bdb_search (search.c:844)
==28687== 
==28687== Invalid read of size 4
==28687==    at 0x80AEDBD: slap_set_join (sets.c:329)
==28687==    by 0x80AF1C2: slap_set_filter (sets.c:612)
==28687==    by 0x80864C9: acl_match_set (acl.c:2299)
==28687==    by 0x8089785: slap_access_allowed (acl.c:1621)
==28687==    by 0x808B6C3: fe_access_allowed (acl.c:311)
==28687==    by 0x80C892F: over_access_allowed (backover.c:314)
==28687==    by 0x80872C3: access_allowed_mask (acl.c:413)
==28687==    by 0x8083BCE: test_ava_filter (filterentry.c:545)
==28687==    by 0x80843E8: test_filter (filterentry.c:88)
==28687==    by 0x80DC90D: bdb_search (search.c:844)
==28687==    by 0x80679F5: fe_op_search (search.c:368)
==28687==    by 0x80C7CA0: overlay_op_walk (backover.c:652)
==28687==  Address 0x7226C30 is 0 bytes inside a block of size 24 free'd
==28687==    at 0x402123A: free (vg_replace_malloc.c:233)
==28687==    by 0x80AE892: slap_set_dispose (sets.c:74)
==28687==    by 0x80AE8E8: slap_set_join (sets.c:354)
==28687==    by 0x80AF1C2: slap_set_filter (sets.c:612)
==28687==    by 0x80864C9: acl_match_set (acl.c:2299)
==28687==    by 0x8089785: slap_access_allowed (acl.c:1621)
==28687==    by 0x808B6C3: fe_access_allowed (acl.c:311)
==28687==    by 0x80C892F: over_access_allowed (backover.c:314)
==28687==    by 0x80872C3: access_allowed_mask (acl.c:413)
==28687==    by 0x8083BCE: test_ava_filter (filterentry.c:545)
==28687==    by 0x80843E8: test_filter (filterentry.c:88)
==28687==    by 0x80DC90D: bdb_search (search.c:844)
==28687== 
==28687== Invalid read of size 4
==28687==    at 0x80AEDC3: slap_set_join (sets.c:329)
==28687==    by 0x80AF1C2: slap_set_filter (sets.c:612)
==28687==    by 0x80864C9: acl_match_set (acl.c:2299)
==28687==    by 0x8089785: slap_access_allowed (acl.c:1621)
==28687==    by 0x808B6C3: fe_access_allowed (acl.c:311)
==28687==    by 0x80C892F: over_access_allowed (backover.c:314)
==28687==    by 0x80872C3: access_allowed_mask (acl.c:413)
==28687==    by 0x8083BCE: test_ava_filter (filterentry.c:545)
==28687==    by 0x80843E8: test_filter (filterentry.c:88)
==28687==    by 0x80DC90D: bdb_search (search.c:844)
==28687==    by 0x80679F5: fe_op_search (search.c:368)
==28687==    by 0x80C7CA0: overlay_op_walk (backover.c:652)
==28687==  Address 0x7226C34 is 4 bytes inside a block of size 24 free'd
==28687==    at 0x402123A: free (vg_replace_malloc.c:233)
==28687==    by 0x80AE892: slap_set_dispose (sets.c:74)
==28687==    by 0x80AE8E8: slap_set_join (sets.c:354)
==28687==    by 0x80AF1C2: slap_set_filter (sets.c:612)
==28687==    by 0x80864C9: acl_match_set (acl.c:2299)
==28687==    by 0x8089785: slap_access_allowed (acl.c:1621)
==28687==    by 0x808B6C3: fe_access_allowed (acl.c:311)
==28687==    by 0x80C892F: over_access_allowed (backover.c:314)
==28687==    by 0x80872C3: access_allowed_mask (acl.c:413)
==28687==    by 0x8083BCE: test_ava_filter (filterentry.c:545)
==28687==    by 0x80843E8: test_filter (filterentry.c:88)
==28687==    by 0x80DC90D: bdb_search (search.c:844)
==28687== 
==28687== Invalid read of size 4
==28687==    at 0x80AEDDF: slap_set_join (sets.c:330)
==28687==    by 0x80AF1C2: slap_set_filter (sets.c:612)
==28687==    by 0x80864C9: acl_match_set (acl.c:2299)
==28687==    by 0x8089785: slap_access_allowed (acl.c:1621)
==28687==    by 0x808B6C3: fe_access_allowed (acl.c:311)
==28687==    by 0x80C892F: over_access_allowed (backover.c:314)
==28687==    by 0x80872C3: access_allowed_mask (acl.c:413)
==28687==    by 0x8083BCE: test_ava_filter (filterentry.c:545)
==28687==    by 0x80843E8: test_filter (filterentry.c:88)
==28687==    by 0x80DC90D: bdb_search (search.c:844)
==28687==    by 0x80679F5: fe_op_search (search.c:368)
==28687==    by 0x80C7CA0: overlay_op_walk (backover.c:652)
==28687==  Address 0x7226C30 is 0 bytes inside a block of size 24 free'd
==28687==    at 0x402123A: free (vg_replace_malloc.c:233)
==28687==    by 0x80AE892: slap_set_dispose (sets.c:74)
==28687==    by 0x80AE8E8: slap_set_join (sets.c:354)
==28687==    by 0x80AF1C2: slap_set_filter (sets.c:612)
==28687==    by 0x80864C9: acl_match_set (acl.c:2299)
==28687==    by 0x8089785: slap_access_allowed (acl.c:1621)
==28687==    by 0x808B6C3: fe_access_allowed (acl.c:311)
==28687==    by 0x80C892F: over_access_allowed (backover.c:314)
==28687==    by 0x80872C3: access_allowed_mask (acl.c:413)
==28687==    by 0x8083BCE: test_ava_filter (filterentry.c:545)
==28687==    by 0x80843E8: test_filter (filterentry.c:88)
==28687==    by 0x80DC90D: bdb_search (search.c:844)
==28687== 
==28687== Invalid read of size 4
==28687==    at 0x80AED4E: slap_set_join (sets.c:298)
==28687==    by 0x80AF1C2: slap_set_filter (sets.c:612)
==28687==    by 0x80864C9: acl_match_set (acl.c:2299)
==28687==    by 0x8089785: slap_access_allowed (acl.c:1621)
==28687==    by 0x808B6C3: fe_access_allowed (acl.c:311)
==28687==    by 0x80C892F: over_access_allowed (backover.c:314)
==28687==    by 0x80872C3: access_allowed_mask (acl.c:413)
==28687==    by 0x8083BCE: test_ava_filter (filterentry.c:545)
==28687==    by 0x80843E8: test_filter (filterentry.c:88)
==28687==    by 0x80DC90D: bdb_search (search.c:844)
==28687==    by 0x80679F5: fe_op_search (search.c:368)
==28687==    by 0x80C7CA0: overlay_op_walk (backover.c:652)
==28687==  Address 0x7226C3C is 12 bytes inside a block of size 24 free'd
==28687==    at 0x402123A: free (vg_replace_malloc.c:233)
==28687==    by 0x80AE892: slap_set_dispose (sets.c:74)
==28687==    by 0x80AE8E8: slap_set_join (sets.c:354)
==28687==    by 0x80AF1C2: slap_set_filter (sets.c:612)
==28687==    by 0x80864C9: acl_match_set (acl.c:2299)
==28687==    by 0x8089785: slap_access_allowed (acl.c:1621)
==28687==    by 0x808B6C3: fe_access_allowed (acl.c:311)
==28687==    by 0x80C892F: over_access_allowed (backover.c:314)
==28687==    by 0x80872C3: access_allowed_mask (acl.c:413)
==28687==    by 0x8083BCE: test_ava_filter (filterentry.c:545)
==28687==    by 0x80843E8: test_filter (filterentry.c:88)
==28687==    by 0x80DC90D: bdb_search (search.c:844)
==28687== 
==28687== Invalid read of size 4
==28687==    at 0x816334F: ber_bvarray_free_x (memory.c:727)
==28687==    by 0x80AE892: slap_set_dispose (sets.c:74)
==28687==    by 0x80AE8E8: slap_set_join (sets.c:354)
==28687==    by 0x80AF1C2: slap_set_filter (sets.c:612)
==28687==    by 0x80864C9: acl_match_set (acl.c:2299)
==28687==    by 0x8089785: slap_access_allowed (acl.c:1621)
==28687==    by 0x808B6C3: fe_access_allowed (acl.c:311)
==28687==    by 0x80C892F: over_access_allowed (backover.c:314)
==28687==    by 0x80872C3: access_allowed_mask (acl.c:413)
==28687==    by 0x8083BCE: test_ava_filter (filterentry.c:545)
==28687==    by 0x80843E8: test_filter (filterentry.c:88)
==28687==    by 0x80DC90D: bdb_search (search.c:844)
==28687==  Address 0x7226C34 is 4 bytes inside a block of size 24 free'd
==28687==    at 0x402123A: free (vg_replace_malloc.c:233)
==28687==    by 0x80AE892: slap_set_dispose (sets.c:74)
==28687==    by 0x80AE8E8: slap_set_join (sets.c:354)
==28687==    by 0x80AF1C2: slap_set_filter (sets.c:612)
==28687==    by 0x80864C9: acl_match_set (acl.c:2299)
==28687==    by 0x8089785: slap_access_allowed (acl.c:1621)
==28687==    by 0x808B6C3: fe_access_allowed (acl.c:311)
==28687==    by 0x80C892F: over_access_allowed (backover.c:314)
==28687==    by 0x80872C3: access_allowed_mask (acl.c:413)
==28687==    by 0x8083BCE: test_ava_filter (filterentry.c:545)
==28687==    by 0x80843E8: test_filter (filterentry.c:88)
==28687==    by 0x80DC90D: bdb_search (search.c:844)
==28687== 
==28687== Invalid read of size 4
==28687==    at 0x816335E: ber_bvarray_free_x (memory.c:727)
==28687==    by 0x80AE892: slap_set_dispose (sets.c:74)
==28687==    by 0x80AE8E8: slap_set_join (sets.c:354)
==28687==    by 0x80AF1C2: slap_set_filter (sets.c:612)
==28687==    by 0x80864C9: acl_match_set (acl.c:2299)
==28687==    by 0x8089785: slap_access_allowed (acl.c:1621)
==28687==    by 0x808B6C3: fe_access_allowed (acl.c:311)
==28687==    by 0x80C892F: over_access_allowed (backover.c:314)
==28687==    by 0x80872C3: access_allowed_mask (acl.c:413)
==28687==    by 0x8083BCE: test_ava_filter (filterentry.c:545)
==28687==    by 0x80843E8: test_filter (filterentry.c:88)
==28687==    by 0x80DC90D: bdb_search (search.c:844)
==28687==  Address 0x7226C3C is 12 bytes inside a block of size 24 free'd
==28687==    at 0x402123A: free (vg_replace_malloc.c:233)
==28687==    by 0x80AE892: slap_set_dispose (sets.c:74)
==28687==    by 0x80AE8E8: slap_set_join (sets.c:354)
==28687==    by 0x80AF1C2: slap_set_filter (sets.c:612)
==28687==    by 0x80864C9: acl_match_set (acl.c:2299)
==28687==    by 0x8089785: slap_access_allowed (acl.c:1621)
==28687==    by 0x808B6C3: fe_access_allowed (acl.c:311)
==28687==    by 0x80C892F: over_access_allowed (backover.c:314)
==28687==    by 0x80872C3: access_allowed_mask (acl.c:413)
==28687==    by 0x8083BCE: test_ava_filter (filterentry.c:545)
==28687==    by 0x80843E8: test_filter (filterentry.c:88)
==28687==    by 0x80DC90D: bdb_search (search.c:844)
==28687== 
==28687== Invalid read of size 4
==28687==    at 0x8163380: ber_bvarray_free_x (memory.c:731)
==28687==    by 0x80AE892: slap_set_dispose (sets.c:74)
==28687==    by 0x80AE8E8: slap_set_join (sets.c:354)
==28687==    by 0x80AF1C2: slap_set_filter (sets.c:612)
==28687==    by 0x80864C9: acl_match_set (acl.c:2299)
==28687==    by 0x8089785: slap_access_allowed (acl.c:1621)
==28687==    by 0x808B6C3: fe_access_allowed (acl.c:311)
==28687==    by 0x80C892F: over_access_allowed (backover.c:314)
==28687==    by 0x80872C3: access_allowed_mask (acl.c:413)
==28687==    by 0x8083BCE: test_ava_filter (filterentry.c:545)
==28687==    by 0x80843E8: test_filter (filterentry.c:88)
==28687==    by 0x80DC90D: bdb_search (search.c:844)
==28687==  Address 0x7226C34 is 4 bytes inside a block of size 24 free'd
==28687==    at 0x402123A: free (vg_replace_malloc.c:233)
==28687==    by 0x80AE892: slap_set_dispose (sets.c:74)
==28687==    by 0x80AE8E8: slap_set_join (sets.c:354)
==28687==    by 0x80AF1C2: slap_set_filter (sets.c:612)
==28687==    by 0x80864C9: acl_match_set (acl.c:2299)
==28687==    by 0x8089785: slap_access_allowed (acl.c:1621)
==28687==    by 0x808B6C3: fe_access_allowed (acl.c:311)
==28687==    by 0x80C892F: over_access_allowed (backover.c:314)
==28687==    by 0x80872C3: access_allowed_mask (acl.c:413)
==28687==    by 0x8083BCE: test_ava_filter (filterentry.c:545)
==28687==    by 0x80843E8: test_filter (filterentry.c:88)
==28687==    by 0x80DC90D: bdb_search (search.c:844)
==28687== 
==28687== Invalid free() / delete / delete[]
==28687==    at 0x402123A: free (vg_replace_malloc.c:233)
==28687==    by 0x80AE892: slap_set_dispose (sets.c:74)
==28687==    by 0x80AE8E8: slap_set_join (sets.c:354)
==28687==    by 0x80AF1C2: slap_set_filter (sets.c:612)
==28687==    by 0x80864C9: acl_match_set (acl.c:2299)
==28687==    by 0x8089785: slap_access_allowed (acl.c:1621)
==28687==    by 0x808B6C3: fe_access_allowed (acl.c:311)
==28687==    by 0x80C892F: over_access_allowed (backover.c:314)
==28687==    by 0x80872C3: access_allowed_mask (acl.c:413)
==28687==    by 0x8083BCE: test_ava_filter (filterentry.c:545)
==28687==    by 0x80843E8: test_filter (filterentry.c:88)
==28687==    by 0x80DC90D: bdb_search (search.c:844)
==28687==  Address 0x7226C30 is 0 bytes inside a block of size 24 free'd
==28687==    at 0x402123A: free (vg_replace_malloc.c:233)
==28687==    by 0x80AE892: slap_set_dispose (sets.c:74)
==28687==    by 0x80AE8E8: slap_set_join (sets.c:354)
==28687==    by 0x80AF1C2: slap_set_filter (sets.c:612)
==28687==    by 0x80864C9: acl_match_set (acl.c:2299)
==28687==    by 0x8089785: slap_access_allowed (acl.c:1621)
==28687==    by 0x808B6C3: fe_access_allowed (acl.c:311)
==28687==    by 0x80C892F: over_access_allowed (backover.c:314)
==28687==    by 0x80872C3: access_allowed_mask (acl.c:413)
==28687==    by 0x8083BCE: test_ava_filter (filterentry.c:545)
==28687==    by 0x80843E8: test_filter (filterentry.c:88)
==28687==    by 0x80DC90D: bdb_search (search.c:844)
<= acl_mask: [1] applying +rscx (stop)
<= acl_mask: [1] mask: =rscx
=> slap_access_allowed: search access granted by =rscx
=> access_allowed: search access granted by =rscx

--------------070701020707050408020200--