From: Michael Chang Date: Fri, 17 Oct 2025 09:01:38 +0000 (+0800) Subject: util/grub-editenv: Wire list_variables() to optional fs_envblk X-Git-Tag: grub-2.14-rc1~27 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4b5ea8dca62fa98fa277f0ee3b3a47efbedb3f47;p=thirdparty%2Fgrub.git util/grub-editenv: Wire list_variables() to optional fs_envblk This patch updates list_variables() so that it also prints entries from the external environment block when one is present. The function first lists all variables from the file based envblk, then iterates over the external envblk and prints those as well. The output format remains the same as before. The change makes it possible to inspect variables regardless of whether they are stored in the file envblk or in the reserved block. Signed-off-by: Michael Chang Reviewed-by: Neal Gompa Reviewed-by: Avnish Chouhan Reviewed-by: Sudhakar Kuppusamy Reviewed-by: Daniel Kiper --- diff --git a/util/grub-editenv.c b/util/grub-editenv.c index 7f39ff120..f8fa294d8 100644 --- a/util/grub-editenv.c +++ b/util/grub-editenv.c @@ -355,10 +355,17 @@ static void list_variables (const char *name) { grub_envblk_t envblk; + grub_envblk_t envblk_on_block = NULL; envblk = open_envblk_file (name); + grub_envblk_iterate (envblk, &envblk_on_block, read_env_block_var); grub_envblk_iterate (envblk, NULL, print_var); grub_envblk_close (envblk); + if (envblk_on_block != NULL) + { + grub_envblk_iterate (envblk_on_block, NULL, print_var); + grub_envblk_close (envblk_on_block); + } } static void