diff --git a/servers/slapd/operation.c b/servers/slapd/operation.c index 96eeab4bf47c3562812aaa508c3dafd96a2192e0..c512faab934de0ac38969f9d9546bc369109fa74 100644 --- a/servers/slapd/operation.c +++ b/servers/slapd/operation.c @@ -117,13 +117,10 @@ slap_op_free( Operation *op, void *ctx ) op->o_controls = opbuf->ob_controls; if ( ctx ) { - Operation *op2; - void *otmp = NULL; - ldap_pvt_thread_pool_getkey( ctx, (void *)slap_op_free, &otmp, NULL ); - op2 = otmp; - LDAP_STAILQ_NEXT( op, o_next ) = op2; + void *op2 = NULL; ldap_pvt_thread_pool_setkey( ctx, (void *)slap_op_free, - (void *)op, slap_op_q_destroy, NULL, NULL ); + op, slap_op_q_destroy, &op2, NULL ); + LDAP_STAILQ_NEXT( op, o_next ) = op2; } else { ber_memfree_x( op, NULL ); }