]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
util/grub-editenv: Wire list_variables() to optional fs_envblk
authorMichael Chang <mchang@suse.com>
Fri, 17 Oct 2025 09:01:38 +0000 (17:01 +0800)
committerDaniel Kiper <daniel.kiper@oracle.com>
Thu, 23 Oct 2025 17:15:01 +0000 (19:15 +0200)
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 <mchang@suse.com>
Reviewed-by: Neal Gompa <ngompa13@gmail.com>
Reviewed-by: Avnish Chouhan <avnish@linux.ibm.com>
Reviewed-by: Sudhakar Kuppusamy <sudhakar@linux.ibm.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
util/grub-editenv.c

index 7f39ff120ce3abea161b6e518b0b32dd2f81e31a..f8fa294d8482ff378de0750310ad02e2912261e9 100644 (file)
@@ -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