Return LDAP_BAD_PARAM if res is not EXOP result.

Skip over referrals that might exist in EXOP result.
This commit is contained in:
Kurt Zeilenga 1999-06-28 22:17:38 +00:00
parent 09a007c031
commit 613bf0b077

View File

@ -170,6 +170,11 @@ ldap_parse_extended_result (
return ld->ld_errno;
}
if( res->lm_msgtype == LDAP_RES_EXTENDED ) {
ld->ld_errno = LDAP_PARAM_ERROR;
return ld->ld_errno;
}
if( retoidp != NULL ) *retoidp = NULL;
if( retdatap != NULL ) *retdatap = NULL;
@ -199,6 +204,15 @@ ldap_parse_extended_result (
tag = ber_peek_tag( ber, &len );
if( tag == LDAP_TAG_REFERRAL ) {
/* skip over referral */
tag = ber_scanf( ber, "x" );
if( tag != LBER_ERROR ) {
tag = ber_peek_tag( ber, &len );
}
}
if( tag == LDAP_TAG_EXOP_RES_OID ) {
/* we have a resoid */
if( ber_scanf( ber, "a", &resoid ) == LBER_ERROR ) {