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 <[email protected]> --- 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 <[email protected]>
