From: Howard Chu Date: Wed, 7 Aug 2002 05:19:55 +0000 (+0000) Subject: Don't strdup conn->authz into op, just reference directly. (Conn cannot X-Git-Tag: NO_SLAP_OP_BLOCKS~1266 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=6862cfd97c4143cc163183a330a7a408a8d7ffbf;p=openldap Don't strdup conn->authz into op, just reference directly. (Conn cannot be freed until after all associated ops are freed.) --- diff --git a/servers/slapd/connection.c b/servers/slapd/connection.c index 8570a4a163..71719a880f 100644 --- a/servers/slapd/connection.c +++ b/servers/slapd/connection.c @@ -1555,13 +1555,11 @@ static int connection_op_activate( Connection *conn, Operation *op ) if (!arg->co_op->o_dn.bv_len) { arg->co_op->o_authz = conn->c_authz; - arg->co_op->o_dn.bv_val = ch_strdup( conn->c_dn.bv_val ? - conn->c_dn.bv_val : "" ); - arg->co_op->o_ndn.bv_val = ch_strdup( conn->c_ndn.bv_val ? - conn->c_ndn.bv_val : "" ); + arg->co_op->o_dn = conn->c_dn; + arg->co_op->o_ndn = conn->c_ndn; } arg->co_op->o_authtype = conn->c_authtype; - ber_dupbv( &arg->co_op->o_authmech, &conn->c_authmech ); + arg->co_op->o_authmech = conn->c_authmech; if (!arg->co_op->o_protocol) { arg->co_op->o_protocol = conn->c_protocol diff --git a/servers/slapd/operation.c b/servers/slapd/operation.c index 49c1a7b58c..70343c6f40 100644 --- a/servers/slapd/operation.c +++ b/servers/slapd/operation.c @@ -23,15 +23,6 @@ slap_op_free( Operation *op ) if ( op->o_ber != NULL ) { ber_free( op->o_ber, 1 ); } - if ( op->o_dn.bv_val != NULL ) { - free( op->o_dn.bv_val ); - } - if ( op->o_ndn.bv_val != NULL ) { - free( op->o_ndn.bv_val ); - } - if ( op->o_authmech.bv_val != NULL ) { - free( op->o_authmech.bv_val ); - } if ( op->o_ctrls != NULL ) { ldap_controls_free( op->o_ctrls ); }