From 1aab7f3d93770b8626d37408a3935109b30f08c0 Mon Sep 17 00:00:00 2001 From: shirely16 Date: Tue, 8 Jun 2021 11:40:30 +0800 Subject: [PATCH] round community patches fix memory leak --- ...-memory-leak-of-deleted-boot-entries.patch | 44 +++++++++++++++++++ efibootmgr.spec | 7 ++- 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 backport-get-rid-of-a-memory-leak-of-deleted-boot-entries.patch diff --git a/backport-get-rid-of-a-memory-leak-of-deleted-boot-entries.patch b/backport-get-rid-of-a-memory-leak-of-deleted-boot-entries.patch new file mode 100644 index 0000000..efdef67 --- /dev/null +++ b/backport-get-rid-of-a-memory-leak-of-deleted-boot-entries.patch @@ -0,0 +1,44 @@ +From d9eb7f1536ed6262fc8c6518c6afe6053a450e9d Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Tue, 28 May 2019 17:00:31 -0400 +Subject: [PATCH] Get rid of a memory leak of deleted boot entries. + +Signed-off-by: Peter Jones + +Conflict:NA +Reference:https://github.com/rhboot/efibootmgr/commit/d9eb7f1536ed6262fc8c6518c6afe6053a450e9d +--- + src/efibootmgr.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/src/efibootmgr.c b/src/efibootmgr.c +index 19a6edc..afcfc77 100644 +--- a/src/efibootmgr.c ++++ b/src/efibootmgr.c +@@ -106,13 +106,12 @@ read_vars(char **namelist, + + for (i=0; namelist[i] != NULL; i++) { + if (namelist[i]) { +- entry = malloc(sizeof(var_entry_t)); ++ entry = calloc(1, sizeof(var_entry_t)); + if (!entry) { +- efi_error("malloc(%zd) failed", ++ efi_error("calloc(1, %zd) failed", + sizeof(var_entry_t)); + goto err; + } +- memset(entry, 0, sizeof(var_entry_t)); + + rc = efi_get_variable(EFI_GLOBAL_GUID, namelist[i], + &entry->data, &entry->data_size, +@@ -611,6 +610,10 @@ delete_var(const char *prefix, uint16_t num) + return rc; + } + list_del(&(entry->list)); ++ free(entry->name); ++ free(entry->data); ++ memset(entry, 0, sizeof(*entry)); ++ free(entry); + break; /* short-circuit since it was found */ + } + } diff --git a/efibootmgr.spec b/efibootmgr.spec index 807f791..50a47a8 100644 --- a/efibootmgr.spec +++ b/efibootmgr.spec @@ -1,11 +1,13 @@ Name: efibootmgr -Release: 7 +Release: 8 Version: 16 Summary: A tool manipulating the EFI Boot Manager License: GPLv2+ URL: https://github.com/rhboot/%{name}/ Source0: https://github.com/rhboot/%{name}/releases/download/%{version}/%{name}-%{version}.tar.bz2 +Patch6000: backport-get-rid-of-a-memory-leak-of-deleted-boot-entries.patch + BuildRequires: gcc BuildRequires: efi-srpm-macros >= 3-2 efi-filesystem git popt-devel efivar-libs >= 35-2 efivar-devel >= 35-2 Requires: efi-filesystem @@ -46,6 +48,9 @@ rm -rf %{buildroot} %{_mandir}/*/*.?.gz %changelog +* Tue Jun 8 2021 hanhui - 16-8 +- round community patches fix memory leak + * Wed May 26 2021 liuyumeng - 16-7 - Add a BuildRequires for gcc -- Gitee