Let see to syncprov_matchops() in syncprov.c:

lines 1233-1235 (begin of the loop):
     ldap_pvt_thread_mutex_lock( &si->si_ops_mutex );
     for (ss = si->si_ops, sprev = (syncops *)&si->si_ops; ss;
         sprev = ss, ss=snext)

lines 1273-1275:
             ss = sprev;
             continue;
         }

and 1347 (near from end of the loop):
             syncprov_free_syncop( ss );

Seems that syncops which is freed on 1347 could be referenced by 1273 on 
a next iteration of the loop.

Leonid.



Reply via email to