diff options
author | Elliott Sales de Andrade <quantum.analyst@gmail.com> | 2023-03-23 22:03:45 -0500 |
---|---|---|
committer | Elliott Sales de Andrade <quantum.analyst@gmail.com> | 2023-03-23 22:03:45 -0500 |
commit | ddbb62d46470ba81a3cd2ec91febe6d11e3f34e0 (patch) | |
tree | e2169f7c89e68fc2e403803f9ce7d3d619a56620 | |
parent | 16071bc64088b65c889ddbc993f8f52cecace8ed (diff) | |
download | pidgin-ddbb62d46470ba81a3cd2ec91febe6d11e3f34e0.tar.gz |
Fix leaked errors
And also simplify some cases with `g_clear_error`.
Testing Done:
Compiled and ran tests in valgrind, though it never noticed these anyway.
Reviewed at https://reviews.imfreedom.org/r/2384/
-rw-r--r-- | libpurple/account.c | 1 | ||||
-rw-r--r-- | libpurple/mediamanager.c | 4 | ||||
-rw-r--r-- | libpurple/prefs.c | 4 | ||||
-rw-r--r-- | libpurple/protocols/demo/purpledemocontacts.c | 2 | ||||
-rw-r--r-- | libpurple/protocols/jabber/oob.c | 2 | ||||
-rw-r--r-- | libpurple/purplegdkpixbuf.c | 18 | ||||
-rw-r--r-- | libpurple/purplegio.c | 6 | ||||
-rw-r--r-- | libpurple/tests/sqlite3/test_sqlite3.c | 1 | ||||
-rw-r--r-- | libpurple/tests/test_protocol.c | 3 | ||||
-rw-r--r-- | pidgin/libpidgin.c | 1 | ||||
-rw-r--r-- | pidgin/pidginabout.c | 2 | ||||
-rw-r--r-- | pidgin/pidgindebug.c | 3 |
12 files changed, 23 insertions, 24 deletions
diff --git a/libpurple/account.c b/libpurple/account.c index 26fd8094e1..59c4a8b724 100644 --- a/libpurple/account.c +++ b/libpurple/account.c @@ -221,6 +221,7 @@ request_password_write_cb(GObject *obj, GAsyncResult *res, gpointer data) { "failed to save password for account \"%s\": %s", name, error != NULL ? error->message : "unknown error"); + g_clear_error(&error); } purple_account_real_connect(account, password); diff --git a/libpurple/mediamanager.c b/libpurple/mediamanager.c index 9c2e6ec471..9cd7c3b40c 100644 --- a/libpurple/mediamanager.c +++ b/libpurple/mediamanager.c @@ -177,9 +177,7 @@ purple_media_manager_init (PurpleMediaManager *media) purple_debug_error("mediamanager", "GStreamer failed to initialize: %s.", error ? error->message : ""); - if (error) { - g_error_free(error); - } + g_clear_error(&error); } purple_prefs_add_none("/purple/media"); diff --git a/libpurple/prefs.c b/libpurple/prefs.c index 268cefc9b3..9c0816d139 100644 --- a/libpurple/prefs.c +++ b/libpurple/prefs.c @@ -410,9 +410,7 @@ purple_prefs_load(void) if(!g_file_get_contents(filename, &contents, &length, &error)) { const gchar *sysconfdir = PURPLE_SYSCONFDIR; g_free(filename); - g_error_free(error); - - error = NULL; + g_clear_error(&error); if (sysconfdir == NULL) sysconfdir = ""; diff --git a/libpurple/protocols/demo/purpledemocontacts.c b/libpurple/protocols/demo/purpledemocontacts.c index 03a3f9cf7c..05ae20e538 100644 --- a/libpurple/protocols/demo/purpledemocontacts.c +++ b/libpurple/protocols/demo/purpledemocontacts.c @@ -242,6 +242,8 @@ purple_demo_contacts_load(PurpleAccount *account) { if(!json_parser_load_from_stream(parser, istream, NULL, &error)) { g_critical("%s", error->message); + g_clear_error(&error); + return; } /* Load our data */ diff --git a/libpurple/protocols/jabber/oob.c b/libpurple/protocols/jabber/oob.c index 459c08d23b..d86d9869f6 100644 --- a/libpurple/protocols/jabber/oob.c +++ b/libpurple/protocols/jabber/oob.c @@ -87,6 +87,7 @@ jabber_oob_xfer_writer(GObject *source, GAsyncResult *result, gpointer data) { purple_xfer_end(xfer); g_clear_pointer(&bytes, g_bytes_unref); g_clear_object(&input); + g_clear_error(&error); jox->msg = NULL; return; } @@ -137,6 +138,7 @@ jabber_oob_xfer_send_cb(GObject *source, GAsyncResult *result, gpointer data) { purple_xfer_set_status(xfer, PURPLE_XFER_STATUS_CANCEL_REMOTE); purple_xfer_end(xfer); g_clear_object(&input); + g_clear_error(&error); jox->msg = NULL; return; } diff --git a/libpurple/purplegdkpixbuf.c b/libpurple/purplegdkpixbuf.c index 570563df11..4691032b4f 100644 --- a/libpurple/purplegdkpixbuf.c +++ b/libpurple/purplegdkpixbuf.c @@ -136,8 +136,7 @@ static GObject *purple_gdk_pixbuf_from_data_helper(const guchar *buf, gsize coun purple_debug_warning("gtkutils", "gdk_pixbuf_loader_write() " "failed with size=%" G_GSIZE_FORMAT ": %s\n", count, error ? error->message : "(no error message)"); - if (error) - g_error_free(error); + g_clear_error(&error); g_object_unref(G_OBJECT(loader)); return NULL; } @@ -146,8 +145,7 @@ static GObject *purple_gdk_pixbuf_from_data_helper(const guchar *buf, gsize coun purple_debug_warning("gtkutils", "gdk_pixbuf_loader_close() " "failed for image of size %" G_GSIZE_FORMAT ": %s\n", count, error ? error->message : "(no error message)"); - if (error) - g_error_free(error); + g_clear_error(&error); g_object_unref(G_OBJECT(loader)); return NULL; } @@ -198,10 +196,8 @@ GdkPixbuf *purple_gdk_pixbuf_new_from_file(const gchar *filename) pixbuf ? "something" : "nothing", filename, error ? error->message : "(no error message)"); - if (error) - g_error_free(error); - if (pixbuf) - g_object_unref(G_OBJECT(pixbuf)); + g_clear_error(&error); + g_clear_object(&pixbuf); return NULL; } @@ -224,10 +220,8 @@ GdkPixbuf *purple_gdk_pixbuf_new_from_file_at_size(const char *filename, int wid pixbuf ? "something" : "nothing", filename, error ? error->message : "(no error message)"); - if (error) - g_error_free(error); - if (pixbuf) - g_object_unref(G_OBJECT(pixbuf)); + g_clear_error(&error); + g_clear_object(&pixbuf); return NULL; } diff --git a/libpurple/purplegio.c b/libpurple/purplegio.c index 4180d4e8d4..05d4a78142 100644 --- a/libpurple/purplegio.c +++ b/libpurple/purplegio.c @@ -50,7 +50,7 @@ graceful_close_cb(gpointer user_data) /* Close input stream, from wrapper or GIOStream */ if (!g_input_stream_close(data->input, NULL, &error)) { - if (error->code != G_IO_ERROR_CANCELLED) { + if(!g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { purple_debug_warning("gio", "Error closing input stream: %s", error->message); } @@ -61,7 +61,7 @@ graceful_close_cb(gpointer user_data) /* Close output stream, from wrapper or GIOStream */ if (!g_output_stream_close(data->output, NULL, &error)) { - if (error->code != G_IO_ERROR_CANCELLED) { + if(!g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { purple_debug_warning("gio", "Error closing output stream: %s", error->message); } @@ -72,7 +72,7 @@ graceful_close_cb(gpointer user_data) /* Close io stream */ if (!g_io_stream_close(data->stream, NULL, &error)) { - if (error->code != G_IO_ERROR_CANCELLED) { + if(!g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { purple_debug_warning("gio", "Error closing stream: %s", error->message); } diff --git a/libpurple/tests/sqlite3/test_sqlite3.c b/libpurple/tests/sqlite3/test_sqlite3.c index 7d6e1a1458..5763cbd32a 100644 --- a/libpurple/tests/sqlite3/test_sqlite3.c +++ b/libpurple/tests/sqlite3/test_sqlite3.c @@ -33,6 +33,7 @@ test_sqlite3_get_schema_version_null(void) { version = purple_sqlite3_get_schema_version(NULL, &error); g_assert_error(error, PURPLE_SQLITE3_DOMAIN, 0); + g_clear_error(&error); g_assert_cmpint(version, ==, -1); } diff --git a/libpurple/tests/test_protocol.c b/libpurple/tests/test_protocol.c index e15b74bb92..6bd3b7acf1 100644 --- a/libpurple/tests/test_protocol.c +++ b/libpurple/tests/test_protocol.c @@ -66,7 +66,7 @@ test_purple_protocol_can_connect_async(PurpleProtocol *protocol, task = g_task_new(protocol, cancellable, callback, data); if(test_protocol->error != NULL) { - g_task_return_error(task, test_protocol->error); + g_task_return_error(task, g_error_copy(test_protocol->error)); } else { g_task_return_boolean(task, test_protocol->result); } @@ -155,6 +155,7 @@ test_purple_protocol_can_connect_cb(GObject *obj, GAsyncResult *res, if(test_protocol->error != NULL) { g_assert_error(error, TEST_PROTOCOL_DOMAIN, 0); + g_clear_error(&error); } else { g_assert_no_error(error); } diff --git a/pidgin/libpidgin.c b/pidgin/libpidgin.c index 2abde5e34f..7aa13e9772 100644 --- a/pidgin/libpidgin.c +++ b/pidgin/libpidgin.c @@ -118,6 +118,7 @@ mainloop_sighandler(GIOChannel *source, G_GNUC_UNUSED GIOCondition cond, if (stat != G_IO_STATUS_NORMAL) { purple_debug_error("sighandler", "Signal callback failed to read " "from signal socket: %s", error->message); + g_clear_error(&error); purple_core_quit(); return FALSE; } diff --git a/pidgin/pidginabout.c b/pidgin/pidginabout.c index c35448fe31..74d7e4b8a5 100644 --- a/pidgin/pidginabout.c +++ b/pidgin/pidginabout.c @@ -144,6 +144,8 @@ pidgin_about_dialog_load_json(AdwPreferencesPage *page, if(!json_parser_load_from_stream(parser, istream, NULL, &error)) { g_critical("%s", error->message); + g_clear_error(&error); + return; } root_node = json_parser_get_root(parser); diff --git a/pidgin/pidgindebug.c b/pidgin/pidgindebug.c index 08d662d8e5..97a53b18c4 100644 --- a/pidgin/pidgindebug.c +++ b/pidgin/pidgindebug.c @@ -236,7 +236,6 @@ regex_change_color(GtkWidget *w, gboolean success) { static void do_regex(PidginDebugWindow *win, GtkTextIter *start, GtkTextIter *end) { - GError *error = NULL; GMatchInfo *match; gint initial_position; gint start_pos, end_pos; @@ -297,7 +296,7 @@ do_regex(PidginDebugWindow *win, GtkTextIter *start, GtkTextIter *end) } } - g_match_info_next(match, &error); + g_match_info_next(match, NULL); } g_match_info_free(match); |