diff --git a/libraries/libldap/result.c b/libraries/libldap/result.c index 5905f43afa..f409afcc9e 100644 --- a/libraries/libldap/result.c +++ b/libraries/libldap/result.c @@ -647,8 +647,13 @@ try_read1msg( { tmpber = *ber; /* struct copy */ if ( v3ref == 1 ) { - /* V3 search reference or V3 referral successfully chased */ - refer_cnt = 0; + /* V3 search reference or V3 referral + * sucessfully chased. If this message + * is a search result, then it has no more + * outstanding referrals. + */ + if ( tag == LDAP_RES_SEARCH_RESULT ) + refer_cnt = 0; } else if ( ber_scanf( &tmpber, "{iaa}", &lderr, &lr->lr_res_matched, &lr->lr_res_error ) != LBER_ERROR ) {