Use explicit g_free in the cleanup section, since we're not
dealing with a proper virDomainDef, but just a shallow
copy.
Signed-off-by: Ján Tomko <jtomko(a)redhat.com>
---
src/remote/remote_daemon_dispatch.c | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/src/remote/remote_daemon_dispatch.c b/src/remote/remote_daemon_dispatch.c
index c187932a3c..fc90bd1251 100644
--- a/src/remote/remote_daemon_dispatch.c
+++ b/src/remote/remote_daemon_dispatch.c
@@ -158,25 +158,25 @@ static bool
remoteRelayDomainEventCheckACL(virNetServerClientPtr client,
virConnectPtr conn, virDomainPtr dom)
{
- virDomainDef def;
+ virDomainDefPtr def = g_new0(virDomainDef, 1);
g_autoptr(virIdentity) identity = NULL;
bool ret = false;
/* For now, we just create a virDomainDef with enough contents to
* satisfy what viraccessdriverpolkit.c references. This is a bit
* fragile, but I don't know of anything better. */
- memset(&def, 0, sizeof(def));
- def.name = dom->name;
- memcpy(def.uuid, dom->uuid, VIR_UUID_BUFLEN);
+ def->name = dom->name;
+ memcpy(def->uuid, dom->uuid, VIR_UUID_BUFLEN);
if (!(identity = virNetServerClientGetIdentity(client)))
goto cleanup;
if (virIdentitySetCurrent(identity) < 0)
goto cleanup;
- ret = virConnectDomainEventRegisterAnyCheckACL(conn, &def);
+ ret = virConnectDomainEventRegisterAnyCheckACL(conn, def);
cleanup:
ignore_value(virIdentitySetCurrent(NULL));
+ g_free(def); /* shallow free */
return ret;
}
@@ -288,24 +288,25 @@ static bool
remoteRelayDomainQemuMonitorEventCheckACL(virNetServerClientPtr client,
virConnectPtr conn, virDomainPtr dom)
{
- virDomainDef def;
+ virDomainDefPtr def = g_new0(virDomainDef, 1);
g_autoptr(virIdentity) identity = NULL;
bool ret = false;
/* For now, we just create a virDomainDef with enough contents to
* satisfy what viraccessdriverpolkit.c references. This is a bit
* fragile, but I don't know of anything better. */
- def.name = dom->name;
- memcpy(def.uuid, dom->uuid, VIR_UUID_BUFLEN);
+ def->name = dom->name;
+ memcpy(def->uuid, dom->uuid, VIR_UUID_BUFLEN);
if (!(identity = virNetServerClientGetIdentity(client)))
goto cleanup;
if (virIdentitySetCurrent(identity) < 0)
goto cleanup;
- ret = virConnectDomainQemuMonitorEventRegisterCheckACL(conn, &def);
+ ret = virConnectDomainQemuMonitorEventRegisterCheckACL(conn, def);
cleanup:
ignore_value(virIdentitySetCurrent(NULL));
+ g_free(def); /* shallow free */
return ret;
}
--
2.26.2