diff mbox series

Avoid double-free on x86-64 systems with no cmdline set

Message ID 20260901071121.834356-2-rhidian.dewit@openpixelsystems.org
State New
Headers show
Series Avoid double-free on x86-64 systems with no cmdline set | expand

Commit Message

Rhidian De Wit Sept. 1, 2026, 7:11 a.m. UTC
Signed-off-by: Rhidian De Wit <rhidian.dewit@openpixelsystems.org>
---
 ...i-slot-bootname-to-avoid-double-free.patch | 43 +++++++++++++++++++
 1 file changed, 43 insertions(+)
 create mode 100644 package/rauc/0002-Duplicate-efi-slot-bootname-to-avoid-double-free.patch
diff mbox series

Patch

diff --git a/package/rauc/0002-Duplicate-efi-slot-bootname-to-avoid-double-free.patch b/package/rauc/0002-Duplicate-efi-slot-bootname-to-avoid-double-free.patch
new file mode 100644
index 0000000000..d8a429e06f
--- /dev/null
+++ b/package/rauc/0002-Duplicate-efi-slot-bootname-to-avoid-double-free.patch
@@ -0,0 +1,43 @@ 
+From 240d8ae22adea51667346854e6f863b558dfc470 Mon Sep 17 00:00:00 2001
+From: Rhidian De Wit <rhidian.dewit@openpixelsystems.org>
+Date: Fri, 21 Aug 2026 16:37:45 +0200
+Subject: [PATCH] Duplicate efi slot bootname to avoid double free
+
+Upstream: https://github.com/rauc/rauc/pull/2028
+
+Signed-off-by: Rhidian De Wit <rhidian.dewit@openpixelsystems.org>
+---
+ src/bootloaders/efi.c | 3 +--
+ test/bootchooser.c    | 1 +
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/bootloaders/efi.c b/src/bootloaders/efi.c
+index 65875c9f..e6eb0351 100644
+--- a/src/bootloaders/efi.c
++++ b/src/bootloaders/efi.c
+@@ -632,9 +632,8 @@ gchar *r_efi_get_current_bootname(RaucConfig *config, GError **error)
+ 		RaucSlot *slot = NULL;
+ 		while (g_hash_table_iter_next(&iter, NULL, (gpointer*) &slot)) {
+ 			if (g_strcmp0(slot->bootname, bootcurrent->name) == 0) {
+-				return slot->bootname;
++				return g_strdup(slot->bootname);
+ 			}
+-		}
+ 	}
+ 
+ 	g_set_error(error,
+diff --git a/test/bootchooser.c b/test/bootchooser.c
+index 43c45397..c35a78f1 100644
+--- a/test/bootchooser.c
++++ b/test/bootchooser.c
+@@ -970,6 +970,7 @@ bootname=system1\n";
+ 
+ 	bootname = r_boot_get_current_bootname(r_context()->config, "", &error);
+ 	g_assert_nonnull(bootname);
++	g_clear_pointer(&bootname, g_free);
+ }
+ 
+ /* If the underlying 'efibootmgr --bootorder ...' call fails (e.g. the
+-- 
+2.51.0
+