X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Foperation.c;h=024139db7da9e4bfca18a2691cddce62c2a47007;hb=9767c87531d193a4bef19286b77623aff18590fb;hp=e975eae28d3bb152ff88dfa684346601d1de08b3;hpb=9de53658d73cf2b4566bae8b809e3599260f4493;p=openldap diff --git a/servers/slapd/operation.c b/servers/slapd/operation.c index e975eae28d..024139db7d 100644 --- a/servers/slapd/operation.c +++ b/servers/slapd/operation.c @@ -2,7 +2,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 1998-2008 The OpenLDAP Foundation. + * Copyright 1998-2009 The OpenLDAP Foundation. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -111,6 +111,11 @@ slap_op_free( Operation *op, void *ctx ) } #endif /* defined( LDAP_SLAPI ) */ + if ( !BER_BVISNULL( &op->o_csn ) ) { + op->o_tmpfree( op->o_csn.bv_val, op->o_tmpmemctx ); + BER_BVZERO( &op->o_csn ); + } + opbuf = (OperationBuffer *) op; memset( opbuf, 0, sizeof(*opbuf) ); op->o_hdr = &opbuf->ob_hdr; @@ -129,8 +134,8 @@ slap_op_free( Operation *op, void *ctx ) void slap_op_time(time_t *t, int *nop) { - *t = slap_get_time(); ldap_pvt_thread_mutex_lock( &slap_op_mutex ); + *t = slap_get_time(); if ( *t == last_time ) { *nop = ++last_incr; } else {