efivar: fix import functionality

"efivar --import" is broken in v38:

 # efivar -i /8be4df61-93ca-11d2-aa0d-00e098032b8c-Timeout
free(): invalid pointer
Aborted

Backport upstream patch to fix it.

Upstream issue:
https://github.com/rhboot/efivar/issues/173

(From OE-Core rev: 7d63a9d4f482276a4431c47cc4407ac2ad855b42)

Signed-off-by: Grygorii Tertychnyi <grygorii.tertychnyi@leica-geosystems.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 27f263a9c69b711f39287c0dc8970ad41758fbb9)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
gr embeter
2022-07-21 17:30:46 +02:00
committed by Richard Purdie
parent a78211a182
commit bef92ca0ce
2 changed files with 31 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
From 085f027e9e9f1478f68ddda705f83b244ee3bd88 Mon Sep 17 00:00:00 2001
From: Robbie Harwood <rharwood@redhat.com>
Date: Mon, 18 Apr 2022 13:08:18 -0400
Subject: [PATCH] Fix invalid free in main()
data is allocated by mmap() in prepare_data().
Resolves: #173
Signed-off-by: Robbie Harwood <rharwood@redhat.com>
Upstream-Status: Backport
Link: https://github.com/rhboot/efivar/commit/6be2cb1c0139ac177e754b0767abf1ca1533847f
Signed-off-by: Grygorii Tertychnyi <grygorii.tertychnyi@leica-geosystems.com>
---
src/efivar.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/efivar.c b/src/efivar.c
index 5cd1eb2bc73c..09f85edd0a38 100644
--- a/src/efivar.c
+++ b/src/efivar.c
@@ -633,7 +633,7 @@ int main(int argc, char *argv[])
if (sz < 0)
err(1, "Could not import data from \"%s\"", infile);
- free(data);
+ munmap(data, data_size);
data = NULL;
data_size = 0;

View File

@@ -11,6 +11,7 @@ SRC_URI = "git://github.com/rhinstaller/efivar.git;branch=main;protocol=https \
file://0001-docs-do-not-build-efisecdb-manpage.patch \
file://0001-src-Makefile-build-util.c-separately-for-makeguids.patch \
file://efisecdb-fix-build-with-musl-libc.patch \
file://0001-Fix-invalid-free-in-main.patch \
"
SRCREV = "1753149d4176ebfb2b135ac0aaf79340bf0e7a93"