libssh: fix state machine loop to progress as it should

This commit is contained in:
Stefan Eissing 2025-11-28 14:05:34 +01:00 committed by Daniel Stenberg
parent 12a3182fc3
commit b06cd929bd
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2

View File

@ -2408,7 +2408,9 @@ static CURLcode myssh_statemach_act(struct Curl_easy *data,
break;
}
} while(!rc && (sshc->state != SSH_STOP));
/* break the loop only on STOP or SSH_AGAIN. If `rc` is some
* other error code, we will have progressed the state accordingly. */
} while((rc != SSH_AGAIN) && (sshc->state != SSH_STOP));
if(rc == SSH_AGAIN) {
/* we would block, we need to wait for the socket to be ready (in the