]> git.sur5r.net Git - openldap/commitdiff
anticipate Statslog to avoid using dangling pointers (ITS#5775) - HEADS-UP: now ...
authorPierangelo Masarati <ando@openldap.org>
Tue, 28 Oct 2008 22:02:01 +0000 (22:02 +0000)
committerPierangelo Masarati <ando@openldap.org>
Tue, 28 Oct 2008 22:02:01 +0000 (22:02 +0000)
servers/slapd/result.c

index 34b79b4ebf255cf02c3e59395885f6678267c6e6..8bb8417921066109f54eda6f458ca919bc42969b 100644 (file)
@@ -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 );