openldap: handle Curl_sasl_continue() returns better

Similar to how it gets treated already in other protocol handlers.

Follow-up to eeca818b1e

Reported-by: Eunsoo Kim
Closes #22213
This commit is contained in:
Daniel Stenberg 2026-06-29 10:44:47 +02:00
parent df350dd0d8
commit ea71c3b6b6
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2

View file

@ -791,8 +791,19 @@ static CURLcode oldap_state_sasl_resp(struct Curl_easy *data,
}
else {
result = Curl_sasl_continue(&li->sasl, data, code, &progress);
if(!result && progress != SASL_INPROGRESS)
oldap_state(data, li, OLDAP_STOP);
if(!result) {
switch(progress) {
case SASL_DONE:
oldap_state(data, li, OLDAP_STOP); /* Authenticated */
break;
case SASL_IDLE: /* No mechanism left after cancellation */
failf(data, "Authentication cancelled");
result = CURLE_LOGIN_DENIED;
break;
default:
break;
}
}
}
if(li->servercred)