From: Pierangelo Masarati Date: Tue, 30 Aug 2005 23:55:15 +0000 (+0000) Subject: further refine previous commit X-Git-Tag: OPENLDAP_REL_ENG_2_2_MP~529 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=093994cfd5a32b113a6c5f20b29dcdcb00050396;p=openldap further refine previous commit --- diff --git a/servers/slapd/back-meta/bind.c b/servers/slapd/back-meta/bind.c index 6ad897ad2f..d3861a4176 100644 --- a/servers/slapd/back-meta/bind.c +++ b/servers/slapd/back-meta/bind.c @@ -665,9 +665,10 @@ meta_back_op_result( int i, rerr = LDAP_SUCCESS; - char *rmsg = NULL; - char *rmatch = NULL; - char *save_rmatch = NULL; + char *rmsg = NULL, + *save_rmsg = NULL, + *rmatch = NULL, + *save_rmatch = NULL; void *rmatch_ctx = NULL; if ( candidate != META_TARGET_NONE ) { @@ -781,7 +782,10 @@ meta_back_op_result( } rs->sr_err = rerr; - rs->sr_text = rmsg; + if ( rmsg != NULL ) { + save_rmsg = rs->sr_text; + rs->sr_text = rmsg; + } if ( rmatch != NULL ) { struct berval dn, pdn; @@ -797,12 +801,12 @@ meta_back_op_result( send_ldap_result( op, rs ); if ( rmsg != NULL ) { ber_memfree( rmsg ); + rs->sr_text = save_rmsg; } if ( rmatch != NULL ) { ber_memfree_x( rmatch, rmatch_ctx ); rs->sr_matched = save_rmatch; } - rs->sr_text = NULL; return ( ( rerr == LDAP_SUCCESS ) ? 0 : -1 ); }