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>
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;
}
goto cleanup;
}
- if (ret != LIBSSH2_ERROR_AUTHENTICATION_FAILED)
+ if (rc != LIBSSH2_ERROR_AUTHENTICATION_FAILED)
break;
VIR_FREE(password);
_("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);