summary refs log tree commit diff stats
path: root/nbd/server.c
diff options
context:
space:
mode:
authorEric Blake <eblake@redhat.com>2019-08-24 12:28:12 -0500
committerEric Blake <eblake@redhat.com>2019-09-05 15:52:45 -0500
commitdf18c04edf57b55737ed5125bffe71a8196938a0 (patch)
tree8736b0cfd329925185320014721c549f087af0c4 /nbd/server.c
parent61cc872456492da24e36cfbd668abfbe127c739f (diff)
downloadfocaccia-qemu-df18c04edf57b55737ed5125bffe71a8196938a0.tar.gz
focaccia-qemu-df18c04edf57b55737ed5125bffe71a8196938a0.zip
nbd: Use g_autofree in a few places
Thanks to our recent move to use glib's g_autofree, I can join the
bandwagon.  Getting rid of gotos is fun ;)

There are probably more places where we could register cleanup
functions and get rid of more gotos; this patch just focuses on the
labels that existed merely to call g_free.

Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <20190824172813.29720-2-eblake@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Diffstat (limited to 'nbd/server.c')
-rw-r--r--nbd/server.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/nbd/server.c b/nbd/server.c
index 0fb41c6c50..74d205812f 100644
--- a/nbd/server.c
+++ b/nbd/server.c
@@ -206,7 +206,7 @@ static int GCC_FMT_ATTR(4, 0)
 nbd_negotiate_send_rep_verr(NBDClient *client, uint32_t type,
                             Error **errp, const char *fmt, va_list va)
 {
-    char *msg;
+    g_autofree char *msg = NULL;
     int ret;
     size_t len;
 
@@ -216,18 +216,14 @@ nbd_negotiate_send_rep_verr(NBDClient *client, uint32_t type,
     trace_nbd_negotiate_send_rep_err(msg);
     ret = nbd_negotiate_send_rep_len(client, type, len, errp);
     if (ret < 0) {
-        goto out;
+        return ret;
     }
     if (nbd_write(client->ioc, msg, len, errp) < 0) {
         error_prepend(errp, "write failed (error message): ");
-        ret = -EIO;
-    } else {
-        ret = 0;
+        return -EIO;
     }
 
-out:
-    g_free(msg);
-    return ret;
+    return 0;
 }
 
 /* Send an error reply.