summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Withnall <philip.withnall@collabora.co.uk>2013-12-03 14:55:29 -0500
committerMatthew Barnes <mbarnes@redhat.com>2013-12-03 19:39:52 -0500
commit3df0d7608cb03375ae8bf365807bb64844e30c7c (patch)
tree03ef7b4b79d698e2a018d145315a4b1d0ac95685
parent34bf22eaa4bc74a692df449f4c544da0125f9245 (diff)
downloadevolution-data-server-3df0d7608cb03375ae8bf365807bb64844e30c7c.tar.gz
CamelPOP3Folder: Fix a potential g_object_unref(NULL) call
If all the branch conditions in this function evaluate to FALSE, the stream is never set, and hence g_object_unref(NULL) is called on exiting the function. Found by scan-build. https://bugzilla.gnome.org/719533 (cherry picked from commit 1161f3fbc1f6018fbc163b2f3078c5938f983c19)
-rw-r--r--camel/providers/pop3/camel-pop3-folder.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/camel/providers/pop3/camel-pop3-folder.c b/camel/providers/pop3/camel-pop3-folder.c
index 93988aa9b..8f9b6c702 100644
--- a/camel/providers/pop3/camel-pop3-folder.c
+++ b/camel/providers/pop3/camel-pop3-folder.c
@@ -702,7 +702,7 @@ pop3_folder_get_message_sync (CamelFolder *folder,
}
message = camel_mime_message_new ();
- if (!camel_data_wrapper_construct_from_stream_sync (
+ if (stream != NULL && !camel_data_wrapper_construct_from_stream_sync (
CAMEL_DATA_WRAPPER (message), stream, cancellable, error)) {
g_prefix_error (error, _("Cannot get message %s: "), uid);
g_object_unref (message);
@@ -712,7 +712,7 @@ pop3_folder_get_message_sync (CamelFolder *folder,
camel_medium_add_header (CAMEL_MEDIUM (message), "X-Evolution-POP3-UID", uid);
}
done:
- g_object_unref (stream);
+ g_clear_object (&stream);
fail:
g_clear_object (&pop3_cache);
g_clear_object (&pop3_engine);