* should we accept no enumerations at all? */
if ( tag != LBER_ENUMERATED ) {
rs->sr_text = "Chaining behavior control: resolveBehavior decoding error";
+fail:
+ ber_free( ber, 1 );
return LDAP_PROTOCOL_ERROR;
}
default:
rs->sr_text = "Chaining behavior control: unknown resolveBehavior";
- return LDAP_PROTOCOL_ERROR;
+ goto fail;
}
tag = ber_peek_tag( ber, &len );
tag = ber_scanf( ber, "e", &behavior );
if ( tag == LBER_ERROR ) {
rs->sr_text = "Chaining behavior control: continuationBehavior decoding error";
- return LDAP_PROTOCOL_ERROR;
+ goto fail;
}
}
default:
rs->sr_text = "Chaining behavior control: unknown continuationBehavior";
- return LDAP_PROTOCOL_ERROR;
+ goto fail;
}
}
if ( ( ber_scanf( ber, /* { */ "}") ) == LBER_ERROR ) {
rs->sr_text = "Chaining behavior control: decoding error";
- return LDAP_PROTOCOL_ERROR;
+ goto fail;
}
(void) ber_free( ber, 1 );