[PATCH] tests: fix GError pointer initialization and memory leaks
Ben Chan
benchan at chromium.org
Mon Jun 2 19:10:47 PDT 2014
This patch fixes a few memory leaks and clears a few GError pointers
before reusing them.
---
plugins/tests/test-fixture.c | 20 +++++++++++++++-----
plugins/tests/test-port-context.c | 29 +++++++++++++++++++++--------
2 files changed, 36 insertions(+), 13 deletions(-)
diff --git a/plugins/tests/test-fixture.c b/plugins/tests/test-fixture.c
index 6b10f47..2fe1d59 100644
--- a/plugins/tests/test-fixture.c
+++ b/plugins/tests/test-fixture.c
@@ -34,8 +34,10 @@ test_fixture_setup (TestFixture *fixture)
/* Create DBus connection */
fixture->connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
- if (fixture->connection == NULL)
+ if (fixture->connection == NULL) {
g_error ("Error getting connection to test bus: %s", error->message);
+ g_clear_error (&error);
+ }
/* Ping to autostart MM; wait up to 3s */
result = g_dbus_connection_call_sync (fixture->connection,
@@ -49,8 +51,10 @@ test_fixture_setup (TestFixture *fixture)
3000, /* timeout, ms */
NULL, /* cancellable */
&error);
- if (!result)
+ if (!result) {
g_error ("Error starting ModemManager in test bus: %s", error->message);
+ g_clear_error (&error);
+ }
g_variant_unref (result);
/* Create the proxy that we're going to test */
@@ -60,8 +64,10 @@ test_fixture_setup (TestFixture *fixture)
"/org/freedesktop/ModemManager1",
NULL, /* cancellable */
&error);
- if (fixture->test == NULL)
+ if (fixture->test == NULL) {
g_error ("Error getting ModemManager test proxy: %s", error->message);
+ g_clear_error (&error);
+ }
}
void
@@ -111,8 +117,10 @@ test_fixture_get_modem (TestFixture *fixture)
G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE,
NULL, /* cancellable */
&error);
- if (!manager)
+ if (!manager) {
g_error ("Couldn't create manager: %s", error->message);
+ g_clear_error (&error);
+ }
/* Find new modem object */
while (!found) {
@@ -157,8 +165,10 @@ test_fixture_no_modem (TestFixture *fixture)
G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE,
NULL, /* cancellable */
&error);
- if (!manager)
+ if (!manager) {
g_error ("Couldn't create manager: %s", error->message);
+ g_clear_error (&error);
+ }
/* Find new modem object */
while (!no_modems) {
diff --git a/plugins/tests/test-port-context.c b/plugins/tests/test-port-context.c
index cbf202f..53c6ef3 100644
--- a/plugins/tests/test-port-context.c
+++ b/plugins/tests/test-port-context.c
@@ -53,10 +53,16 @@ test_port_context_load_commands (TestPortContext *self,
gchar *contents;
gchar *current;
- if (!g_file_get_contents (file, &contents, NULL, &error))
+ if (!g_file_get_contents (file, &contents, NULL, &error)) {
+ gchar *filename;
+
+ filename = g_filename_display_name (file);
g_error ("Couldn't load commands file '%s': %s",
- g_filename_display_name (file),
+ filename,
error->message);
+ g_free (filename);
+ g_clear_error (&error);
+ }
current = contents;
while (current) {
@@ -198,8 +204,7 @@ connection_readable_cb (GSocket *socket,
if (r < 0) {
g_warning ("Error reading from istream: %s", error ? error->message : "unknown");
- if (error)
- g_error_free (error);
+ g_clear_error (&error);
/* Close the device */
connection_close (client);
return FALSE;
@@ -269,20 +274,26 @@ create_socket_service (TestPortContext *self)
G_SOCKET_TYPE_STREAM,
G_SOCKET_PROTOCOL_DEFAULT,
&error);
- if (!socket)
+ if (!socket) {
g_error ("Cannot create socket: %s", error->message);
+ g_clear_error (&error);
+ }
/* Bind to address */
address = (g_unix_socket_address_new_with_type (
self->name,
-1,
G_UNIX_SOCKET_ADDRESS_ABSTRACT));
- if (!g_socket_bind (socket, address, TRUE, &error))
+ if (!g_socket_bind (socket, address, TRUE, &error)) {
g_error ("Cannot bind socket: %s", error->message);
+ g_clear_error (&error);
+ }
/* Listen */
- if (!g_socket_listen (socket, &error))
+ if (!g_socket_listen (socket, &error)) {
g_error ("Cannot listen in socket: %s", error->message);
+ g_clear_error (&error);
+ }
/* Create socket service */
service = g_socket_service_new ();
@@ -290,8 +301,10 @@ create_socket_service (TestPortContext *self)
if (!g_socket_listener_add_socket (G_SOCKET_LISTENER (service),
socket,
NULL, /* don't pass an object, will take a reference */
- &error))
+ &error)) {
g_error ("Cannot add listener to socket: %s", error->message);
+ g_clear_error (&error);
+ }
/* Start it */
g_socket_service_start (service);
--
1.9.1.423.g4596e3a
More information about the ModemManager-devel
mailing list