diff options
author | Milan Crha <mcrha@redhat.com> | 2014-01-31 20:59:23 +0800 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2014-01-31 21:01:57 +0800 |
commit | 2acd31fe1c847b3794a116f5e365868e999db3c8 (patch) | |
tree | d4882a3150fea19257c94a621122778d038241e4 /mail | |
parent | 7652b019dc74f3bdb04befa136a2a0e8611e9c8d (diff) | |
download | gsoc2013-evolution-2acd31fe1c847b3794a116f5e365868e999db3c8.tar gsoc2013-evolution-2acd31fe1c847b3794a116f5e365868e999db3c8.tar.gz gsoc2013-evolution-2acd31fe1c847b3794a116f5e365868e999db3c8.tar.bz2 gsoc2013-evolution-2acd31fe1c847b3794a116f5e365868e999db3c8.tar.lz gsoc2013-evolution-2acd31fe1c847b3794a116f5e365868e999db3c8.tar.xz gsoc2013-evolution-2acd31fe1c847b3794a116f5e365868e999db3c8.tar.zst gsoc2013-evolution-2acd31fe1c847b3794a116f5e365868e999db3c8.zip |
EHttpRequest: Avoid possible data stream memory leak
The request's finish function is not called in case when the request
is cancelled, which meant that the whole data stream was leaked.
Diffstat (limited to 'mail')
-rw-r--r-- | mail/e-http-request.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/mail/e-http-request.c b/mail/e-http-request.c index c85a26810e..534e30bff6 100644 --- a/mail/e-http-request.c +++ b/mail/e-http-request.c @@ -283,7 +283,7 @@ handle_http_request (GSimpleAsyncResult *res, /* Set result and quit the thread */ g_simple_async_result_set_op_res_gpointer ( - res, stream, NULL); + res, stream, g_object_unref); goto cleanup; } else { @@ -446,7 +446,7 @@ handle_http_request (GSimpleAsyncResult *res, uri, priv->content_type, priv->content_length, uri_md5)); - g_simple_async_result_set_op_res_gpointer (res, stream, NULL); + g_simple_async_result_set_op_res_gpointer (res, stream, g_object_unref); goto cleanup; } @@ -541,6 +541,8 @@ http_request_send_finish (SoupRequest *request, if (!stream) /* We must always return something */ stream = g_memory_input_stream_new (); + else + g_object_ref (stream); return stream; } |