From c3e1275b60205919f27d941cf6f1cfae7a53c3cb Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Tue, 2 Apr 2019 17:35:42 +0200 Subject: [PATCH] rpc: Refactor cleanup paths in virNetLibsshAuthenticatePassword MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now that the memory disposal is handled automatically we can simplify the cleanup paths. In this case it's not as simple as sometimes the value of the called function is returned. While at it fix the initialization value of the returned variable. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- src/rpc/virnetlibsshsession.c | 33 ++++++++++++--------------------- 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/src/rpc/virnetlibsshsession.c b/src/rpc/virnetlibsshsession.c index 039d8a278c..486437e7bf 100644 --- a/src/rpc/virnetlibsshsession.c +++ b/src/rpc/virnetlibsshsession.c @@ -606,25 +606,22 @@ virNetLibsshAuthenticatePassword(virNetLibsshSessionPtr sess, virNetLibsshAuthMethodPtr priv) { const char *errmsg; - int ret = -1; + int rc = SSH_AUTH_ERROR; VIR_DEBUG("sess=%p", sess); if (priv->password) { /* tunelled password authentication */ - if ((ret = ssh_userauth_password(sess->session, NULL, - priv->password)) == 0) { - ret = SSH_AUTH_SUCCESS; - goto cleanup; - } + if ((rc = ssh_userauth_password(sess->session, NULL, + priv->password)) == 0) + return SSH_AUTH_SUCCESS; } else { /* password authentication with interactive password request */ if (!sess->cred || !sess->cred->cb) { virReportError(VIR_ERR_LIBSSH, "%s", _("Can't perform authentication: " "Authentication callback not provided")); - ret = SSH_AUTH_ERROR; - goto cleanup; + return SSH_AUTH_ERROR; } /* Try the authenticating the set amount of times. The server breaks the @@ -634,19 +631,15 @@ virNetLibsshAuthenticatePassword(virNetLibsshSessionPtr sess, if (!(password = virAuthGetPasswordPath(sess->authPath, sess->cred, "ssh", sess->username, - sess->hostname))) { - ret = SSH_AUTH_ERROR; - goto cleanup; - } + sess->hostname))) + return SSH_AUTH_ERROR; /* tunelled password authentication */ - if ((ret = ssh_userauth_password(sess->session, NULL, - password)) == 0) { - ret = SSH_AUTH_SUCCESS; - goto cleanup; - } + if ((rc = ssh_userauth_password(sess->session, NULL, + password)) == 0) + return SSH_AUTH_SUCCESS; - if (ret != SSH_AUTH_DENIED) + if (rc != SSH_AUTH_DENIED) break; } } @@ -655,9 +648,7 @@ virNetLibsshAuthenticatePassword(virNetLibsshSessionPtr sess, errmsg = ssh_get_error(sess->session); virReportError(VIR_ERR_AUTH_FAILED, _("authentication failed: %s"), errmsg); - - cleanup: - return ret; + return rc; } /* perform keyboard interactive authentication -- GitLab