From ffb66f41bb7d7719a4263b7fccb9aab8dcb90b74 Mon Sep 17 00:00:00 2001 From: Pierangelo Masarati Date: Tue, 28 Oct 2008 22:02:01 +0000 Subject: [PATCH] anticipate Statslog to avoid using dangling pointers (ITS#5775) - HEADS-UP: now 'ENTRY dn=' may appear also in case the PDU can't be sent --- servers/slapd/result.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/servers/slapd/result.c b/servers/slapd/result.c index 34b79b4ebf..8bb8417921 100644 --- a/servers/slapd/result.c +++ b/servers/slapd/result.c @@ -747,7 +747,6 @@ slap_send_search_entry( Operation *op, SlapReply *rs ) BerElement *ber = (BerElement *) &berbuf; Attribute *a; int i, j, rc = LDAP_UNAVAILABLE, bytes; - char *edn; int userattrs; AccessControlState acl_state = ACL_STATE_INIT; int attrsonly; @@ -810,8 +809,6 @@ slap_send_search_entry( Operation *op, SlapReply *rs ) goto error_return; } - edn = rs->sr_entry->e_nname.bv_val; - if ( op->o_res_ber ) { /* read back control or LDAP_CONNECTIONLESS */ ber = op->o_res_ber; @@ -1198,6 +1195,9 @@ slap_send_search_entry( Operation *op, SlapReply *rs ) goto error_return; } + Statslog( LDAP_DEBUG_STATS2, "%s ENTRY dn=\"%s\"\n", + op->o_log_prefix, rs->sr_entry->e_nname.bv_val, 0, 0, 0 ); + if ( rs->sr_flags & REP_ENTRY_MUSTRELEASE ) { be_entry_release_rw( op, rs->sr_entry, 0 ); rs->sr_flags ^= REP_ENTRY_MUSTRELEASE; @@ -1225,9 +1225,6 @@ slap_send_search_entry( Operation *op, SlapReply *rs ) ldap_pvt_thread_mutex_unlock( &op->o_counters->sc_mutex ); } - Statslog( LDAP_DEBUG_STATS2, "%s ENTRY dn=\"%s\"\n", - op->o_log_prefix, edn, 0, 0, 0 ); - Debug( LDAP_DEBUG_TRACE, "<= send_search_entry: conn %lu exit.\n", op->o_connid, 0, 0 ); -- 2.39.5