From fcd31a195be0e48709ff44b24ed3b5dc2f4f60e3 Mon Sep 17 00:00:00 2001 From: Jonathan Lebon Date: Wed, 25 Jul 2018 17:49:12 -0400 Subject: [PATCH] lib: Fix some minor memory leaks I initially was going to add a `G_DEFINE_AUTOPTR_CLEANUP_FUNC` for `FetchStaticDeltaData`, but it honestly didn't seem worth mucking around ownership everywhere and potentially getting it wrong. Discovered by Coverity. Closes: #1692 Approved by: cgwalters --- src/libostree/ostree-repo-pull.c | 5 ++++- src/libostree/ostree-repo-static-delta-compilation.c | 3 +-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/libostree/ostree-repo-pull.c b/src/libostree/ostree-repo-pull.c index a8fee076..da46ed32 100644 --- a/src/libostree/ostree-repo-pull.c +++ b/src/libostree/ostree-repo-pull.c @@ -2486,7 +2486,10 @@ process_one_static_delta (OtPullData *pull_data, OSTREE_STATIC_DELTA_OPEN_FLAGS_SKIP_CHECKSUM, NULL, &inline_delta_part, cancellable, error)) - return FALSE; + { + fetch_static_delta_data_free (fetch_data); + return FALSE; + } _ostree_static_delta_part_execute_async (pull_data->repo, fetch_data->objects, diff --git a/src/libostree/ostree-repo-static-delta-compilation.c b/src/libostree/ostree-repo-static-delta-compilation.c index 9084a72f..f06fad68 100644 --- a/src/libostree/ostree-repo-static-delta-compilation.c +++ b/src/libostree/ostree-repo-static-delta-compilation.c @@ -313,14 +313,13 @@ finish_part (OstreeStaticDeltaBuilder *builder, GError **error) static OstreeStaticDeltaPartBuilder * allocate_part (OstreeStaticDeltaBuilder *builder, GError **error) { - OstreeStaticDeltaPartBuilder *part = g_new0 (OstreeStaticDeltaPartBuilder, 1); - if (builder->parts->len > 0) { if (!finish_part (builder, error)) return NULL; } + OstreeStaticDeltaPartBuilder *part = g_new0 (OstreeStaticDeltaPartBuilder, 1); part->objects = g_ptr_array_new_with_free_func ((GDestroyNotify)g_variant_unref); part->payload = g_string_new (NULL); part->operations = g_string_new (NULL);