[libvirt] [PATCH] rpc: fix handling of SSH auth failure code

Daniel P. Berrangé berrange at redhat.com
Fri Aug 31 10:15:35 UTC 2018


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.

Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
---
 src/rpc/virnetsshsession.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/rpc/virnetsshsession.c b/src/rpc/virnetsshsession.c
index 35dc6c5356..54c3a6f7aa 100644
--- a/src/rpc/virnetsshsession.c
+++ b/src/rpc/virnetsshsession.c
@@ -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,7 +750,7 @@ virNetSSHAuthenticatePassword(virNetSSHSessionPtr sess,
                    _("authentication failed: %s"), errmsg);
 
     /* determine exist status */
-    if (ret == LIBSSH2_ERROR_AUTHENTICATION_FAILED)
+    if (rc == LIBSSH2_ERROR_AUTHENTICATION_FAILED)
         return 1;
     else
         return -1;
-- 
2.17.1




More information about the libvir-list mailing list