From 8326d2be226547f816a46b583f6c17cdcd59f298 Mon Sep 17 00:00:00 2001 From: Howard Chu <hyc@openldap.org> Date: Wed, 13 Dec 2006 16:24:09 +0000 Subject: [PATCH] ITS#4545 unchased referral fix from HEAD --- libraries/libldap/result.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/libraries/libldap/result.c b/libraries/libldap/result.c index 4db51b83e3..03a2677fe9 100644 --- a/libraries/libldap/result.c +++ b/libraries/libldap/result.c @@ -566,7 +566,7 @@ nextresp2: lr->lr_msgid, 0, 0); } - /* We sucessfully chased the reference */ + /* We successfully chased the reference */ v3ref = V3REF_SUCCESS; } } @@ -648,6 +648,26 @@ nextresp2: LDAP_FREE( lr->lr_res_error ); lr->lr_res_error = NULL; } + + /* Since it's not a SearchReference, it must be a + * result. Since we're not chasing the referral, + * this request is done. + */ + if ( v3ref == V3REF_TOAPP ) { + lr->lr_status = LDAP_REQST_COMPLETED; + Debug( LDAP_DEBUG_TRACE, + "request done: ld %p msgid %d, " + "referral returned to app\n", + (void *)ld, lr->lr_msgid, 0); +#ifdef LDAP_R_COMPILE + ldap_pvt_thread_mutex_lock( &ld->ld_req_mutex ); +#endif + ldap_free_request( ld, lr ); +#ifdef LDAP_R_COMPILE + ldap_pvt_thread_mutex_unlock( &ld->ld_req_mutex ); +#endif + lr = NULL; + } } } } -- GitLab