[libsoup] Fix leaks in test programs, update libsoup.supp



commit d8a0e5f863d258ba8e3b0ff97e5c557dbf9fee03
Author: Dan Winship <danw gnome org>
Date:   Fri Sep 11 11:46:14 2009 -0400

    Fix leaks in test programs, update libsoup.supp

 tests/auth-test.c      |    4 +
 tests/chunk-test.c     |   15 ++-
 tests/libsoup.supp     |  376 +++++++++++++++++++++++++++++++++++++++++++++--
 tests/misc-test.c      |    1 +
 tests/sniffing-test.c  |   20 ++-
 tests/streaming-test.c |    2 +
 6 files changed, 389 insertions(+), 29 deletions(-)
---
diff --git a/tests/auth-test.c b/tests/auth-test.c
index b090e23..f4baaf5 100644
--- a/tests/auth-test.c
+++ b/tests/auth-test.c
@@ -795,6 +795,10 @@ do_select_auth_test (void)
 			      "Digest, Basic", "Digest",
 			      NULL, NULL,
 			      SOUP_STATUS_OK);
+
+	g_object_unref (basic_auth_domain);
+	g_object_unref (digest_auth_domain);
+	soup_uri_free (uri);
 }
 
 int
diff --git a/tests/chunk-test.c b/tests/chunk-test.c
index edfe739..8ce286b 100644
--- a/tests/chunk-test.c
+++ b/tests/chunk-test.c
@@ -253,18 +253,21 @@ do_response_test (SoupSession *session, SoupURI *base_uri)
 static void
 temp_test_wrote_chunk (SoupMessage *msg, gpointer session)
 {
+	SoupBuffer *chunk;
+
+	chunk = soup_message_body_get_chunk (msg->request_body, 5);
+
 	/* When the bug is present, the second chunk will also be
 	 * discarded after the first is written, which will cause
 	 * the I/O to stall since soup-message-io will think it's
 	 * done, but it hasn't written Content-Length bytes yet.
-	 * So add in another chunk to keep it going.
 	 */
-	if (!soup_message_body_get_chunk (msg->request_body,
-					  5)) {
+	if (!chunk) {
 		debug_printf (1, "  Lost second chunk!\n");
 		errors++;
 		soup_session_abort (session);
-	}
+	} else
+		soup_buffer_free (chunk);
 
 	g_signal_handlers_disconnect_by_func (msg, temp_test_wrote_chunk, session);
 }
@@ -273,7 +276,8 @@ static void
 do_temporary_test (SoupSession *session, SoupURI *base_uri)
 {
 	SoupMessage *msg;
-	const char *client_md5, *server_md5;
+	char *client_md5;
+	const char *server_md5;
 
 	debug_printf (1, "PUT w/ temporary buffers\n");
 
@@ -304,6 +308,7 @@ do_temporary_test (SoupSession *session, SoupURI *base_uri)
 		errors++;
 	}
 
+	g_free (client_md5);
 	g_object_unref (msg);
 }
 
diff --git a/tests/libsoup.supp b/tests/libsoup.supp
index 37da38d..8316da9 100644
--- a/tests/libsoup.supp
+++ b/tests/libsoup.supp
@@ -152,6 +152,19 @@
    fun:g_object_class_install_property
 }
 {
+   glib/g_object_class_install_property_8
+   Memcheck:Leak
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:g_object_class_install_property
+}
+{
    glib/g_param_spec_types_init_2
    Memcheck:Leak
    fun:*
@@ -176,6 +189,16 @@
    fun:g_param_spec_types_init
 }
 {
+   glib/g_param_spec_internal_5
+   Memcheck:Leak
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:g_param_spec_internal
+}
+{
    glib/g_type_register_static_1
    Memcheck:Leak
    fun:*
@@ -377,6 +400,17 @@
    fun:g_signal_new
 }
 {
+   glib/g_signal_handlers_destroy_6
+   Memcheck:Leak
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:g_signal_handlers_destroy
+}
+{
    glib/g_get_language_names_2
    Memcheck:Leak
    fun:*
@@ -411,6 +445,31 @@
    fun:g_get_language_names
 }
 {
+   glib/g_get_language_names_7
+   Memcheck:Leak
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:g_get_language_names
+}
+{
+   glib/g_get_language_names_8
+   Memcheck:Leak
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:g_get_language_names
+}
+{
    glib/g_intern_static_string_3
    Memcheck:Leak
    fun:*
@@ -483,7 +542,19 @@
    fun:g_thread_init_glib
 }
 {
-   glib/g_thread_init_glib_y
+   glib/g_thread_init_glib_7
+   Memcheck:Leak
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:g_thread_init_glib
+}
+{
+   glib/g_thread_init_glib_8
    Memcheck:Leak
    fun:*
    fun:*
@@ -492,6 +563,7 @@
    fun:*
    fun:*
    fun:*
+   fun:*
    fun:g_thread_init_glib
 }
 {
@@ -613,6 +685,16 @@
    fun:g_data_initialize
 }
 {
+   glib/g_data_initialize_5
+   Memcheck:Leak
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:g_data_initialize
+}
+{
    glib/g_static_rw_lock_writer_lock_3
    Memcheck:Leak
    fun:*
@@ -655,6 +737,152 @@
    fun:*
    fun:g_child_watch_source_init_multi_threaded
 }
+{
+   glib/g_static_private_set_4
+   Memcheck:Leak
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:g_static_private_set
+}
+{
+   glib/g_main_context_push_thread_default_4
+   Memcheck:Leak
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:g_queue_new
+   fun:g_main_context_push_thread_default
+}
+{
+   glib/g_resolver_get_default_9
+   Memcheck:Leak
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:g_resolver_get_default
+}
+{
+   glib/g_threaded_resolver_init_4
+   Memcheck:Leak
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:g_threaded_resolver_init
+}
+{
+   glib/g_threaded_resolver_init_5
+   Memcheck:Leak
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:g_threaded_resolver_init
+}
+{
+   glib/g_threaded_resolver_init_7
+   Memcheck:Leak
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:g_threaded_resolver_init
+}
+{
+   glib/xdg_mime_init_4
+   Memcheck:Leak
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:xdg_mime_init
+}
+{
+   glib/xdg_mime_init_3
+   Memcheck:Leak
+   fun:*
+   fun:*
+   fun:*
+   fun:xdg_mime_init
+}
+{
+   glib/xdg_mime_init_2
+   Memcheck:Leak
+   fun:*
+   fun:*
+   fun:xdg_mime_init
+}
+{
+   glib/xdg_mime_init_8
+   Memcheck:Leak
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:xdg_mime_init
+}
+{
+   glib/xdg_mime_init_9
+   Memcheck:Leak
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:xdg_mime_init
+}
+{
+   glib/xdg_mime_init_10
+   Memcheck:Leak
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:xdg_mime_init
+}
+{
+   glib/xdg_mime_init_11
+   Memcheck:Leak
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:xdg_mime_init
+}
 
 
 {
@@ -749,6 +977,22 @@
    fun:gnutls_global_init
 }
 {
+   gnutls/gnutls_global_init_11
+   Memcheck:Leak
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:gnutls_global_init
+}
+{
    gnutls/soup_gnutls_init_gcry_control_4
    Memcheck:Leak
    fun:*
@@ -759,6 +1003,17 @@
    fun:soup_gnutls_init
 }
 {
+   gnutls/soup_gnutls_init_gcry_control_5
+   Memcheck:Leak
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:gcry_control
+   fun:soup_gnutls_init
+}
+{
    gnutls/soup_gnutls_init_gcry_control_7
    Memcheck:Leak
    fun:*
@@ -786,6 +1041,21 @@
    fun:soup_gnutls_init
 }
 {
+   gnutls/soup_gnutls_init_gcry_control_9
+   Memcheck:Leak
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:gcry_control
+   fun:soup_gnutls_init
+}
+{
    gnutls/gnutls_handshake_5
    Memcheck:Leak
    fun:*
@@ -806,65 +1076,139 @@
    fun:*
    fun:gnutls_handshake
 }
-
 {
-   libsoup/intern_header_name_3
+   gnutls/init_dh_params_1
+   Memcheck:Leak
+   fun:*
+   fun:gnutls_dh_params_init
+   fun:init_dh_params
+}
+{
+   gnutls/init_dh_params_8
    Memcheck:Leak
    fun:*
    fun:*
    fun:*
-   fun:intern_header_name
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:gnutls_dh_params_generate2
+   fun:init_dh_params
 }
 {
-   libsoup/intern_header_name_4
+   gnutls/init_dh_params_9
    Memcheck:Leak
    fun:*
    fun:*
    fun:*
    fun:*
-   fun:intern_header_name
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:gnutls_dh_params_generate2
+   fun:init_dh_params
 }
 {
-   libsoup/intern_header_name_5
+   gnutls/init_dh_params_10
    Memcheck:Leak
    fun:*
    fun:*
    fun:*
    fun:*
    fun:*
-   fun:intern_header_name
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:gnutls_dh_params_generate2
+   fun:init_dh_params
+}
+{
+   gnutls/init_dh_params_11
+   Memcheck:Leak
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:gnutls_dh_params_generate2
+   fun:init_dh_params
+}
+{
+   gnutls/init_dh_params_12
+   Memcheck:Leak
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:*
+   fun:gnutls_dh_params_generate2
+   fun:init_dh_params
 }
+
 {
-   libsoup/soup_dns_cache_entry_new_3
+   libsoup/intern_header_name_3
    Memcheck:Leak
    fun:*
    fun:*
    fun:*
-   fun:soup_dns_cache_entry_new
+   fun:intern_header_name
 }
 {
-   libsoup/soup_dns_cache_entry_new_4
+   libsoup/intern_header_name_4
    Memcheck:Leak
    fun:*
    fun:*
    fun:*
    fun:*
-   fun:soup_dns_cache_entry_new
+   fun:intern_header_name
 }
 {
-   libsoup/soup_dns_lookup_name_3
+   libsoup/intern_header_name_5
    Memcheck:Leak
    fun:*
    fun:*
    fun:*
-   fun:soup_dns_lookup_name
+   fun:*
+   fun:*
+   fun:intern_header_name
 }
 {
-   libsoup/resolver_thread_4
+   libsoup/intern_header_name_7
    Memcheck:Leak
    fun:*
    fun:*
    fun:*
    fun:*
-   fun:resolver_thread
+   fun:*
+   fun:*
+   fun:*
+   fun:intern_header_name
+}
+{
+   libsoup/soup_uri_get_scheme
+   Memcheck:Leak
+   fun:*
+   fun:*
+   fun:*
+   fun:g_ascii_strdown
+   fun:soup_uri_get_scheme
 }
diff --git a/tests/misc-test.c b/tests/misc-test.c
index e694477..70c213d 100644
--- a/tests/misc-test.c
+++ b/tests/misc-test.c
@@ -374,6 +374,7 @@ do_star_test (void)
 	g_object_unref (msg);
 
 	soup_test_session_abort_unref (session);
+	soup_uri_free (star_uri);
 }
 
 int
diff --git a/tests/sniffing-test.c b/tests/sniffing-test.c
index 561d2ee..26ddc16 100644
--- a/tests/sniffing-test.c
+++ b/tests/sniffing-test.c
@@ -166,6 +166,8 @@ server_callback (SoupServer *server, SoupMessage *msg,
 					  MIN(500, length - offset));
 	}
 	soup_message_body_complete (msg->response_body);
+
+	g_free (contents);
 }
 
 static gboolean
@@ -271,7 +273,7 @@ do_signals_test (gboolean should_content_sniff,
 	if (empty_response) {
 		if (uri->query) {
 			char *tmp = uri->query;
-			uri->query = g_strdup_printf("%s&empty_response=yes", tmp);
+			uri->query = g_strdup_printf ("%s&empty_response=yes", tmp);
 			g_free (tmp);
 		} else
 			soup_uri_set_query (uri, "empty_response=yes");
@@ -317,11 +319,9 @@ do_signals_test (gboolean should_content_sniff,
 		exit (1);
 	}
 
-	if (!should_accumulate && chunk_data) {
+	if (!should_accumulate && chunk_data)
 		body = soup_message_body_flatten (chunk_data);
-		soup_message_body_free (chunk_data);
-		chunk_data = NULL;
-	} else if (msg->response_body)
+	else if (msg->response_body)
 		body = soup_message_body_flatten (msg->response_body);
 
 	if (body && body->length != length) {
@@ -334,8 +334,13 @@ do_signals_test (gboolean should_content_sniff,
 		errors++;
 	}
 
+	g_free (contents);
 	if (body)
 		soup_buffer_free (body);
+	if (chunk_data) {
+		soup_message_body_free (chunk_data);
+		chunk_data = NULL;
+	}
 
 	soup_uri_free (uri);
 	g_object_unref (msg);
@@ -421,7 +426,6 @@ int
 main (int argc, char **argv)
 {
 	SoupServer *server;
-	SoupContentSniffer *sniffer;
 
 	test_init (argc, argv, NULL);
 
@@ -450,8 +454,7 @@ main (int argc, char **argv)
 	do_signals_test (FALSE, TRUE, TRUE, FALSE, TRUE);
 	do_signals_test (FALSE, TRUE, TRUE, TRUE, TRUE);
 
-	sniffer = soup_content_sniffer_new ();
-	soup_session_add_feature (session, (SoupSessionFeature*)sniffer);
+	soup_session_add_feature_by_type (session, SOUP_TYPE_CONTENT_SNIFFER);
 
 	/* Now, with a sniffer, content_sniffed must be emitted after
 	 * got-headers, and before got-chunk.
@@ -519,6 +522,7 @@ main (int argc, char **argv)
 
 	soup_uri_free (base_uri);
 
+	soup_test_session_abort_unref (session);
 	test_cleanup ();
 	return errors != 0;
 }
diff --git a/tests/streaming-test.c b/tests/streaming-test.c
index e28cfe2..1389a62 100644
--- a/tests/streaming-test.c
+++ b/tests/streaming-test.c
@@ -182,6 +182,8 @@ main (int argc, char **argv)
 
 	g_main_loop_unref (loop);
 
+	g_free (full_response);
+	g_free (full_response_md5);
 	test_cleanup ();
 	return errors != 0;
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]