[PATCH v2 06/27] virNetLibsshSessionAuthAddPrivKeyAuth: Refactor cleanup

Peter Krempa pkrempa at redhat.com
Tue Feb 2 16:55:43 UTC 2021


Shuffle the code around to remove the need for temporary variables and
labels for cleaning them.

Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 src/rpc/virnetlibsshsession.c | 23 +++++------------------
 1 file changed, 5 insertions(+), 18 deletions(-)

diff --git a/src/rpc/virnetlibsshsession.c b/src/rpc/virnetlibsshsession.c
index ed697c7ce4..9671a0f98d 100644
--- a/src/rpc/virnetlibsshsession.c
+++ b/src/rpc/virnetlibsshsession.c
@@ -1013,10 +1013,7 @@ virNetLibsshSessionAuthAddPrivKeyAuth(virNetLibsshSessionPtr sess,
                                       const char *keyfile,
                                       const char *password)
 {
-    int ret;
     virNetLibsshAuthMethodPtr auth;
-    VIR_AUTODISPOSE_STR pass = NULL;
-    char *file = NULL;

     if (!keyfile) {
         virReportError(VIR_ERR_LIBSSH, "%s",
@@ -1026,28 +1023,18 @@ virNetLibsshSessionAuthAddPrivKeyAuth(virNetLibsshSessionPtr sess,

     virObjectLock(sess);

-    file = g_strdup(keyfile);
-    pass = g_strdup(password);
-
     if (!(auth = virNetLibsshSessionAuthMethodNew(sess))) {
-        ret = -1;
-        goto error;
+        virObjectUnlock(sess);
+        return -1;
     }

-    auth->password = g_steal_pointer(&pass);
-    auth->filename = file;
+    auth->password = g_strdup(password);
+    auth->filename = g_strdup(keyfile);
     auth->method = VIR_NET_LIBSSH_AUTH_PRIVKEY;
     auth->ssh_flags = SSH_AUTH_METHOD_PUBLICKEY;

-    ret = 0;
-
- cleanup:
     virObjectUnlock(sess);
-    return ret;
-
- error:
-    VIR_FREE(file);
-    goto cleanup;
+    return 0;
 }

 int
-- 
2.29.2




More information about the libvir-list mailing list