libssh: fix incorrect return value in myssh_in_AUTH_PKEY_INIT

In the unlikely case that no SSH auth methods are supported, the
previous code would return 0 from myssh_in_AUTH_PKEY_INIT. However,
following the code path, it seems like it should be returning SSH_ERROR,
as set in myssh_to_ERROR (through myssh_to_GSSAPI_AUTH,
myssh_to_KEY_AUTH and myssh_to_PASSWD_AUTH).

In actuality, this is unlikely to occur, as the similar code in
myssh_in_AUTHLIST would have already returned an error in this scenario.
However setting a return value and then ignoring it is a bit fishy and
should be documented if this is intended.

I believe this used to return an error, but was changed in the recent
re-factoring of this code.

Closes #17691
This commit is contained in:
Joel Depooter 2025-06-20 15:44:02 -07:00 committed by Daniel Stenberg
parent 7d8fa8276d
commit e3d9675924
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2

View file

@ -960,7 +960,7 @@ static int myssh_in_AUTH_PKEY_INIT(struct Curl_easy *data,
int rc;
if(!(data->set.ssh_auth_types & CURLSSH_AUTH_PUBLICKEY)) {
rc = myssh_to_GSSAPI_AUTH(data, sshc);
return 0;
return rc;
}
/* Two choices, (1) private key was given on CMD,