[glib/wip/smcv/gdbus-test-leak] gdbus-serialization: Don't leak string containing first serialization
- From: Simon McVittie <smcv src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib/wip/smcv/gdbus-test-leak] gdbus-serialization: Don't leak string containing first serialization
- Date: Thu, 28 Jan 2021 21:39:36 +0000 (UTC)
commit de87bcf7ff2bd1e7998ac35ad4cd727485ca14c7
Author: Simon McVittie <smcv collabora com>
Date: Thu Jan 28 21:24:50 2021 +0000
gdbus-serialization: Don't leak string containing first serialization
We format the message into a string twice, once for each byte-order,
but only return the one corresponding to the last byte-order to the
caller. This means we need to free the first one.
Signed-off-by: Simon McVittie <smcv collabora com>
gio/tests/gdbus-serialization.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
---
diff --git a/gio/tests/gdbus-serialization.c b/gio/tests/gdbus-serialization.c
index 2ef70b11e..b95244c9a 100644
--- a/gio/tests/gdbus-serialization.c
+++ b/gio/tests/gdbus-serialization.c
@@ -524,6 +524,7 @@ get_and_check_serialization (GVariant *value)
GDBusMessage *recovered_message;
GError *error;
DBusError dbus_error;
+ gchar *last_serialization = NULL;
gchar *s = NULL;
guint n;
@@ -617,11 +618,19 @@ get_and_check_serialization (GVariant *value)
}
g_object_unref (recovered_message);
g_free (blob);
+
+ if (last_serialization != NULL)
+ {
+ g_assert_cmpstr (last_serialization, ==, s);
+ g_free (last_serialization);
+ }
+
+ last_serialization = g_steal_pointer (&s);
}
g_object_unref (message);
- return g_steal_pointer (&s);
+ return g_steal_pointer (&last_serialization);
}
/* If @value is floating, this assumes ownership. */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]