From: Adrian Vovk Date: Tue, 1 Oct 2024 20:53:02 +0000 (+0200) Subject: bootspec: Fixup memory leak X-Git-Tag: v257-rc3~15^2~2 X-Git-Url: http://git-history.diyao.me/?a=commitdiff_plain;h=e2501a851e10f5279862b2bccbdd9184572cce6a;p=systemd%2F.git bootspec: Fixup memory leak This would previously leak memory: the array was deleted but contents inside of the array were not --- diff --git a/src/shared/bootspec.c b/src/shared/bootspec.c index 584515a297..49440dded1 100644 --- a/src/shared/bootspec.c +++ b/src/shared/bootspec.c @@ -44,6 +44,8 @@ static const char* const boot_entry_type_json_table[_BOOT_ENTRY_TYPE_MAX] = { DEFINE_STRING_TABLE_LOOKUP_TO_STRING(boot_entry_type_json, BootEntryType); +static void boot_entry_addons_done(BootEntryAddons *addons); + static void boot_entry_free(BootEntry *entry) { assert(entry); @@ -59,7 +61,7 @@ static void boot_entry_free(BootEntry *entry) { free(entry->machine_id); free(entry->architecture); strv_free(entry->options); - free(entry->local_addons.items); + boot_entry_addons_done(&entry->local_addons); free(entry->kernel); free(entry->efi); strv_free(entry->initrd); @@ -426,7 +428,8 @@ void boot_config_free(BootConfig *config) { FOREACH_ARRAY(i, config->entries, config->n_entries) boot_entry_free(i); free(config->entries); - free(config->global_addons.items); + + boot_entry_addons_done(&config->global_addons); set_free(config->inodes_seen); } diff --git a/src/shared/bootspec.h b/src/shared/bootspec.h index 58c676fbec..0bb75669ce 100644 --- a/src/shared/bootspec.h +++ b/src/shared/bootspec.h @@ -31,8 +31,6 @@ typedef struct BootEntryAddons { size_t n_items; } BootEntryAddons; -BootEntryAddon* boot_entry_addon_free(BootEntryAddon *t); - typedef struct BootEntry { BootEntryType type; bool reported_by_loader;