]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/operation.c
fix ITS#5959 fix
[openldap] / servers / slapd / operation.c
index c159313ab3f2bbf05778cd1fde7c8f57d5058923..024139db7da9e4bfca18a2691cddce62c2a47007 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * 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;
@@ -184,19 +189,6 @@ slap_op_alloc(
        return( op );
 }
 
-void
-slap_op_popextra( Operation *op, OpExtra *oe )
-{
-       OpExtra **prev;
-
-       for ( prev = &op->o_extra; *prev; prev = &(*prev)->oe_next ) {
-               if ( *prev == oe ) {
-                       *prev = oe->oe_next;
-                       break;
-               }
-       }
-}
-
 slap_op_t
 slap_req2op( ber_tag_t tag )
 {