From d3ede20ba00ddee262d1a53db1f63dd20aa9125f Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Fri, 25 Aug 2023 16:57:12 -0400 Subject: [PATCH] sign/ed25519: Fix two memory leaks Spotted by coverity. --- src/libostree/ostree-sign-ed25519.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/libostree/ostree-sign-ed25519.c b/src/libostree/ostree-sign-ed25519.c index f8b99e99..cfe1f652 100644 --- a/src/libostree/ostree-sign-ed25519.c +++ b/src/libostree/ostree-sign-ed25519.c @@ -415,17 +415,18 @@ ostree_sign_ed25519_add_pk (OstreeSign *self, GVariant *public_key, GError **err if (!_ostree_sign_ed25519_is_initialized (sign, error)) return FALSE; - gpointer key = NULL; + g_autofree guint8 *key_owned = NULL; + const guint8 *key = NULL; gsize n_elements = 0; if (g_variant_is_of_type (public_key, G_VARIANT_TYPE_STRING)) { const gchar *pk_ascii = g_variant_get_string (public_key, NULL); - key = g_base64_decode (pk_ascii, &n_elements); + key = key_owned = g_base64_decode (pk_ascii, &n_elements); } else if (g_variant_is_of_type (public_key, G_VARIANT_TYPE_BYTESTRING)) { - key = (gpointer)g_variant_get_fixed_array (public_key, &n_elements, sizeof (guchar)); + key = g_variant_get_fixed_array (public_key, &n_elements, sizeof (guchar)); } else { @@ -461,7 +462,7 @@ _ed25519_add_revoked (OstreeSign *self, GVariant *revoked_key, GError **error) const gchar *rk_ascii = g_variant_get_string (revoked_key, NULL); gsize n_elements = 0; - gpointer key = g_base64_decode (rk_ascii, &n_elements); + g_autofree guint8 *key = g_base64_decode (rk_ascii, &n_elements); if (!validate_length (n_elements, OSTREE_SIGN_ED25519_PUBKEY_SIZE, error)) return glnx_prefix_error (error, "Incorrect ed25519 revoked key"); -- 2.30.2