]> xenbits.xensource.com Git - libvirt.git/commitdiff
remote: Use g_new0 to allocate 'remote_string' in event RPC handlers
authorPeter Krempa <pkrempa@redhat.com>
Tue, 22 Oct 2019 14:10:53 +0000 (16:10 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 24 Oct 2019 17:35:34 +0000 (19:35 +0200)
Few events emit optional strings. We need to allocate the container for
it first. Note that remote_nonnull_string is used as the type as the
internal part of the string is nonnull if the container is present.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
ACKed-by: Eric Blake <eblake@redhat.com>
src/remote/remote_daemon_dispatch.c

index 1ea952881727be73029d18d7a64e49dc45227c86..63f7496fb9d5277872a6d0a7069d3febabdff348 100644 (file)
@@ -722,14 +722,12 @@ remoteRelayDomainEventDiskChange(virConnectPtr conn,
     /* build return data */
     memset(&data, 0, sizeof(data));
     if (oldSrcPath) {
-        if (VIR_ALLOC(data.oldSrcPath) < 0)
-            goto error;
+        data.oldSrcPath = g_new0(remote_nonnull_string, 1);
         *(data.oldSrcPath) = g_strdup(oldSrcPath);
     }
 
     if (newSrcPath) {
-        if (VIR_ALLOC(data.newSrcPath) < 0)
-            goto error;
+        data.newSrcPath = g_new0(remote_nonnull_string, 1);
         *(data.newSrcPath) = g_strdup(newSrcPath);
     }
 
@@ -751,11 +749,6 @@ remoteRelayDomainEventDiskChange(virConnectPtr conn,
     }
 
     return 0;
-
- error:
-    xdr_free((xdrproc_t)xdr_remote_domain_event_disk_change_msg,
-             (char *) &data);
-    return -1;
 }
 
 
@@ -1263,8 +1256,7 @@ remoteRelayDomainEventMetadataChange(virConnectPtr conn,
 
     data.type = type;
     if (nsuri) {
-        if (VIR_ALLOC(data.nsuri) < 0)
-            goto error;
+        data.nsuri = g_new0(remote_nonnull_string, 1);
         *(data.nsuri) = g_strdup(nsuri);
     }
 
@@ -1277,11 +1269,6 @@ remoteRelayDomainEventMetadataChange(virConnectPtr conn,
                                   &data);
 
     return 0;
-
- error:
-    xdr_free((xdrproc_t)xdr_remote_domain_event_callback_metadata_change_msg,
-             (char *) &data);
-    return -1;
 }
 
 
@@ -1309,8 +1296,7 @@ remoteRelayDomainEventBlockThreshold(virConnectPtr conn,
     data.callbackID = callback->callbackID;
     data.dev = g_strdup(dev);
     if (path) {
-        if (VIR_ALLOC(data.path) < 0)
-            goto error;
+        data.path = g_new0(remote_nonnull_string, 1);
         *(data.path) = g_strdup(path);
     }
     data.threshold = threshold;
@@ -1322,11 +1308,6 @@ remoteRelayDomainEventBlockThreshold(virConnectPtr conn,
                                   (xdrproc_t)xdr_remote_domain_event_block_threshold_msg, &data);
 
     return 0;
-
- error:
-    xdr_free((xdrproc_t)xdr_remote_domain_event_block_threshold_msg,
-             (char *) &data);
-    return -1;
 }