[PATCH 00/10] boot: revert boot related globalvars after booting
Sascha Hauer
s.hauer at pengutronix.de
Fri Oct 30 03:53:58 PDT 2026
Boot entries configure booting through globalvars like global.bootm.*,
global.linux.bootargs.* or global.of.overlay.*. So far only some of these
were restored after a boot entry returned, by saving a fixed set of
variables and by clearing the global.linux.bootargs.dyn.* namespace.
This series adds globalvar scopes, which snapshot all globalvars with
given prefixes and restore them later, and uses them around each boot
entry, bootm and bootchooser boot attempts. With that the .dyn infix is
no longer needed, so it is dropped from the boot entries barebox ships.
The series is based on the "boot: UAF and double free fixes" series.
Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
Sascha Hauer (10):
globalvar: add scopes to snapshot and restore globalvars
bootm: revert globalvar changes in bootm_boot_cleanup()
boot: revert globalvar changes after each boot entry
bootchooser: use a globalvar scope for its bootargs
test: py: add test for reverting globalvars after boot
bootargs: remove unused linux_bootargs_overwrite()
of: add watchdog bootarg directly instead of via a globalvar
boot: drop the dyn infix from the bootentries bootargs variable
defaultenv: don't use global.linux.bootargs.dyn.* in boot entries
Documentation: migration-guides: describe reverting boot globalvars
.../migration-master/boot-globalvar-scope.rst | 13 ++
Documentation/user/booting-linux.rst | 27 ++--
Documentation/user/devboot.rst | 4 +-
common/Kconfig | 6 +-
common/blspec.c | 2 +-
common/boot.c | 35 ++---
common/bootargs.c | 17 ---
common/bootchooser.c | 6 +-
common/bootm.c | 27 +---
common/extlinux.c | 2 +-
common/globalvar.c | 142 +++++++++++++++++++++
common/oftree.c | 41 +++---
defaultenv/defaultenv-2-base/boot/net | 5 +-
defaultenv/defaultenv-2-base/data/boot-template | 2 +-
defaultenv/defaultenv-2-dfu/boot/dfu | 4 +-
include/boot.h | 16 +++
include/bootargs.h | 5 -
include/bootm.h | 9 +-
include/globalvar.h | 29 +++++
test/py/test_boot_globalvar_scope.py | 117 +++++++++++++++++
20 files changed, 396 insertions(+), 113 deletions(-)
---
base-commit: 9ae453b11d9e222b33247c95405f6a74ee845fa0
change-id: 20261030-boot-globalvar-stack-9c65609b5801
Best regards,
--
Sascha Hauer <s.hauer at pengutronix.de>
More information about the barebox
mailing list