op->o_dn = op->o_req_dn;
op->o_ndn = op->o_req_ndn;
}
- isproxyauthz = ldap_back_is_proxy_authz( op, rs, 0, binddn, bindcred );
+ isproxyauthz = ldap_back_is_proxy_authz( op, rs, sendok, binddn, bindcred );
+ if ( isproxyauthz == -1 ) {
+ return NULL;
+ }
if ( op->o_tag == LDAP_REQ_BIND ) {
op->o_dn = save_o_dn;
op->o_ndn = save_o_ndn;
*/
if ( LDAP_BACK_CONN_ISIDASSERT( lc ) ) {
if ( BER_BVISEMPTY( &binddn ) && BER_BVISEMPTY( &bindcred ) ) {
- ldap_back_is_proxy_authz( op, rs, 0, &binddn, &bindcred );
+ /* if we got here, it shouldn't return result */
+ (void)ldap_back_is_proxy_authz( op, rs,
+ LDAP_BACK_DONTSEND, &binddn, &bindcred );
}
(void)ldap_back_proxy_authz_bind( lc, op, rs, sendok, &binddn, &bindcred );
goto done;
rs->sr_err = LDAP_UNWILLING_TO_PERFORM;
if ( sendok & LDAP_BACK_SENDERR ) {
send_ldap_result( op, rs );
+ dobind = -1;
}
goto done;
}
rs->sr_err = LDAP_INAPPROPRIATE_AUTH;
if ( sendok & LDAP_BACK_SENDERR ) {
send_ldap_result( op, rs );
+ dobind = -1;
}
} else {
if ( li->li_idassert_flags & LDAP_BACK_AUTH_PRESCRIPTIVE ) {
if ( sendok & LDAP_BACK_SENDERR ) {
send_ldap_result( op, rs );
+ dobind = -1;
}
} else {