mirror of
https://github.com/ostreedev/ostree.git
synced 2025-01-03 05:18:24 +03:00
lib/traverse: Fix minor memory leak
I was trying to check something with `-fsanitize=address` and it warned about this memory leak. It's...subtle, basically we were leaking when the same commit was added to the hash table. But unfortunately fixing that then complicates ownership over the return value; what we really want to use here is `g_hash_table_steal_all_keys` but RHEL 9.4 is still rocking `glib2-2.68.4` so we can't use it. (Rust would mean we wouldn't have leaked anything here in the first place...) Signed-off-by: Colin Walters <walters@verbum.org>
This commit is contained in:
parent
fbb1cc7e38
commit
bd5b4adccd
@ -339,11 +339,13 @@ parents_get_commits (GHashTable *parents_ht, GVariant *object, GHashTable *res)
|
|||||||
char **
|
char **
|
||||||
ostree_repo_traverse_parents_get_commits (GHashTable *parents, GVariant *object)
|
ostree_repo_traverse_parents_get_commits (GHashTable *parents, GVariant *object)
|
||||||
{
|
{
|
||||||
g_autoptr (GHashTable) res = g_hash_table_new (g_str_hash, g_str_equal);
|
g_autoptr (GHashTable) res = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
|
||||||
|
|
||||||
parents_get_commits (parents, object, res);
|
parents_get_commits (parents, object, res);
|
||||||
|
|
||||||
return (char **)g_hash_table_get_keys_as_array (res, NULL);
|
// TODO: Once we can depend on modern glib 2.76, just use g_hash_table_steal_all_keys
|
||||||
|
g_autofree char **tmpbuf = (char **)g_hash_table_get_keys_as_array (res, NULL);
|
||||||
|
return g_strdupv (tmpbuf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean traverse_dirtree (OstreeRepo *repo, const char *checksum, GVariant *parent_key,
|
static gboolean traverse_dirtree (OstreeRepo *repo, const char *checksum, GVariant *parent_key,
|
||||||
|
Loading…
Reference in New Issue
Block a user