From: Pierangelo Masarati Date: Wed, 20 Apr 2005 14:14:15 +0000 (+0000) Subject: port fix to ITS#3642 (dnssrv crasher) X-Git-Tag: OPENLDAP_REL_ENG_2_2_25~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2d17dd075ea135875d540461b1d94d2b804ae49c;p=thirdparty%2Fopenldap.git port fix to ITS#3642 (dnssrv crasher) --- diff --git a/CHANGES b/CHANGES index 95097e77c6..400b470c11 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,7 @@ OpenLDAP 2.2 Change Log OpenLDAP 2.2.25 Engineering Fixed back-bdb ctxcsn/LRU bug (ITS#3666) + Fixed back-dnssrv referral all but search op crasher bug (ITS#3642) Fixed back-meta memory leak (ITS#3669) OpenLDAP 2.2.24 Release diff --git a/servers/slapd/back-dnssrv/referral.c b/servers/slapd/back-dnssrv/referral.c index 040d868f32..de25129af1 100644 --- a/servers/slapd/back-dnssrv/referral.c +++ b/servers/slapd/back-dnssrv/referral.c @@ -59,16 +59,18 @@ dnssrv_back_referrals( rs->sr_err = LDAP_REFERRAL; rs->sr_ref = default_referral; send_ldap_result( op, rs ); + rs->sr_ref = NULL; return LDAP_REFERRAL; } Debug( LDAP_DEBUG_TRACE, "DNSSRV: dn=\"%s\" -> domain=\"%s\"\n", op->o_req_dn.bv_val, domain, 0 ); - if( ( rc = ldap_domain2hostlist( domain, &hostlist ) ) ) { + i = ldap_domain2hostlist( domain, &hostlist ); + if ( i ) { Debug( LDAP_DEBUG_TRACE, "DNSSRV: domain2hostlist(%s) returned %d\n", - domain, rc, 0 ); + domain, i, 0 ); rs->sr_text = "no DNS SRV RR available for DN"; rc = LDAP_NO_SUCH_OBJECT; goto done; @@ -109,6 +111,8 @@ dnssrv_back_referrals( rs->sr_ref = urls; send_ldap_error( op, rs, LDAP_REFERRAL, "DNS SRV generated referrals" ); + rs->sr_ref = NULL; + rc = LDAP_REFERRAL; done: if( domain != NULL ) ch_free( domain );