mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-10-01 21:46:35 +03:00
rpc: fix handling of SSH auth failure code
The result of libssh2_userauth_password is being assigned to 'ret' in one branch and 'rc' in the other branch. Checks are all done against the 'ret' variable, so one branch never does the correct check. Reviewed-by: Andrea Bolognani <abologna@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
@@ -706,9 +706,9 @@ virNetSSHAuthenticatePassword(virNetSSHSessionPtr sess,
|
||||
|
||||
if (priv->password) {
|
||||
/* tunelled password authentication */
|
||||
if ((ret = libssh2_userauth_password(sess->session,
|
||||
priv->username,
|
||||
priv->password)) == 0) {
|
||||
if ((rc = libssh2_userauth_password(sess->session,
|
||||
priv->username,
|
||||
priv->password)) == 0) {
|
||||
ret = 0;
|
||||
goto cleanup;
|
||||
}
|
||||
@@ -737,7 +737,7 @@ virNetSSHAuthenticatePassword(virNetSSHSessionPtr sess,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (ret != LIBSSH2_ERROR_AUTHENTICATION_FAILED)
|
||||
if (rc != LIBSSH2_ERROR_AUTHENTICATION_FAILED)
|
||||
break;
|
||||
|
||||
VIR_FREE(password);
|
||||
@@ -750,10 +750,10 @@ virNetSSHAuthenticatePassword(virNetSSHSessionPtr sess,
|
||||
_("authentication failed: %s"), errmsg);
|
||||
|
||||
/* determine exist status */
|
||||
if (ret == LIBSSH2_ERROR_AUTHENTICATION_FAILED)
|
||||
return 1;
|
||||
if (rc == LIBSSH2_ERROR_AUTHENTICATION_FAILED)
|
||||
ret = 1;
|
||||
else
|
||||
return -1;
|
||||
ret = -1;
|
||||
|
||||
cleanup:
|
||||
VIR_FREE(password);
|
||||
|
Reference in New Issue
Block a user