]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virnetdaemon: fix memory leak in virNetDaemonCallInhibit
authorPavel Hrdina <phrdina@redhat.com>
Wed, 23 Sep 2020 14:31:21 +0000 (16:31 +0200)
committerPavel Hrdina <phrdina@redhat.com>
Wed, 23 Sep 2020 14:45:50 +0000 (16:45 +0200)
g_variant_new() returns a weak reference which can be consumed by passing
to other g_variant* functions or to g_dbus_connection_call* functions.

This make it possible to call g_variant_new() directly as argument to
the functions above. Because this might be confusing I explicitly call
g_variant_ref_sink() to make it normal reference in both
virGDBusCallMethod() and virGDBusCallMethodWithFD() so the caller is
always responsible for the data.

Reported-by: Peter Krempa <pkrempa@redhat.com>
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
src/rpc/virnetdaemon.c

index f3a5e9f75c4bd2f66f2d00a276e2753a3180c9e9..2e01244f74379655144574b20ef43f31e59be9b8 100644 (file)
@@ -469,7 +469,7 @@ virNetDaemonCallInhibit(virNetDaemonPtr dmn,
 {
     g_autoptr(GVariant) reply = NULL;
     g_autoptr(GUnixFDList) replyFD = NULL;
-    GVariant *message = NULL;
+    g_autoptr(GVariant) message = NULL;
     GDBusConnection *systemBus;
     int fd;
     int rc;