From ce4d21bc1721634d6353dec63f932d5ee417d853 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Thu, 11 May 2017 09:08:20 -0400 Subject: [PATCH] checkout: Plug a memleak of the state stringbuf A struct without a cleanup macro is a struct likely to leak. Closes: #850 Approved by: jlebon --- src/libostree/ostree-repo-checkout.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/libostree/ostree-repo-checkout.c b/src/libostree/ostree-repo-checkout.c index b4298ba4..f5ef9517 100644 --- a/src/libostree/ostree-repo-checkout.c +++ b/src/libostree/ostree-repo-checkout.c @@ -40,6 +40,14 @@ typedef struct { GString *selabel_path_buf; } CheckoutState; +static void +checkout_state_clear (CheckoutState *state) +{ + if (state->selabel_path_buf) + g_string_free (state->selabel_path_buf, TRUE); +} +G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(CheckoutState, checkout_state_clear); + static gboolean checkout_object_for_uncompressed_cache (OstreeRepo *self, const char *loose_path, @@ -787,7 +795,7 @@ checkout_tree_at (OstreeRepo *self, GCancellable *cancellable, GError **error) { - CheckoutState state = { 0, }; + g_auto(CheckoutState) state = { 0, }; // If SELinux labeling is enabled, we need to keep track of the full path string if (options->sepolicy) {