[libvirt] [PATCH 3/4] remote: Use g_new0 to allocate 'remote_string' in event RPC handlers

Peter Krempa posted 4 patches 6 years, 3 months ago
[libvirt] [PATCH 3/4] remote: Use g_new0 to allocate 'remote_string' in event RPC handlers
Posted by Peter Krempa 6 years, 3 months ago
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>
---
 src/remote/remote_daemon_dispatch.c | 27 ++++-----------------------
 1 file changed, 4 insertions(+), 23 deletions(-)

diff --git a/src/remote/remote_daemon_dispatch.c b/src/remote/remote_daemon_dispatch.c
index 392a32fed8..9d1fe5a095 100644
--- a/src/remote/remote_daemon_dispatch.c
+++ b/src/remote/remote_daemon_dispatch.c
@@ -721,14 +721,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);
     }

@@ -750,11 +748,6 @@ remoteRelayDomainEventDiskChange(virConnectPtr conn,
     }

     return 0;
-
- error:
-    xdr_free((xdrproc_t)xdr_remote_domain_event_disk_change_msg,
-             (char *) &data);
-    return -1;
 }


@@ -1262,8 +1255,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);
     }

@@ -1276,11 +1268,6 @@ remoteRelayDomainEventMetadataChange(virConnectPtr conn,
                                   &data);

     return 0;
-
- error:
-    xdr_free((xdrproc_t)xdr_remote_domain_event_callback_metadata_change_msg,
-             (char *) &data);
-    return -1;
 }


@@ -1308,8 +1295,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;
@@ -1321,11 +1307,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;
 }


-- 
2.21.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH 3/4] remote: Use g_new0 to allocate 'remote_string' in event RPC handlers
Posted by Eric Blake 6 years, 3 months ago
On 10/22/19 9:45 AM, Peter Krempa wrote:
> 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>
> ---
>   src/remote/remote_daemon_dispatch.c | 27 ++++-----------------------
>   1 file changed, 4 insertions(+), 23 deletions(-)
> 

ACK

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list