]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virfdstream: Use g_autofree in virFDStreamThreadDoRead()
authorMichal Privoznik <mprivozn@redhat.com>
Tue, 7 Jul 2020 11:04:48 +0000 (13:04 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Thu, 20 Aug 2020 11:48:45 +0000 (13:48 +0200)
The buffer that allocated in the virFDStreamThreadDoRead() can be
automatically freed, or if saved into the message structure it
can be stolen.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
src/util/virfdstream.c

index 1c32be47a9b30bba285dc43cbd729c701c223945..e29c95690bcda2c579119bf55b045d594f3a075f 100644 (file)
@@ -431,7 +431,7 @@ virFDStreamThreadDoRead(virFDStreamDataPtr fdst,
     virFDStreamMsgPtr msg = NULL;
     int inData = 0;
     long long sectionLen = 0;
-    char *buf = NULL;
+    g_autofree char *buf = NULL;
     ssize_t got;
 
     if (sparse && *dataLen == 0) {
@@ -483,9 +483,8 @@ virFDStreamThreadDoRead(virFDStreamDataPtr fdst,
         }
 
         msg->type = VIR_FDSTREAM_MSG_TYPE_DATA;
-        msg->stream.data.buf = buf;
+        msg->stream.data.buf = g_steal_pointer(&buf);
         msg->stream.data.len = got;
-        buf = NULL;
         if (sparse)
             *dataLen -= got;
     }
@@ -496,7 +495,6 @@ virFDStreamThreadDoRead(virFDStreamDataPtr fdst,
     return got;
 
  error:
-    VIR_FREE(buf);
     virFDStreamMsgFree(msg);
     return -1;
 }