1f092ca
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
1f092ca
From: Javier Martinez Canillas <javierm@redhat.com>
1f092ca
Date: Wed, 21 Nov 2018 15:38:50 +0100
1f092ca
Subject: [PATCH] blscfg: expand grub_users before passing to
1f092ca
 grub_normal_add_menu_entry()
1f092ca
1f092ca
The "grub_users" field from the BLS snippet file is used to specifcy the
1f092ca
users that are allowed to execute a given menu entry if the "superusers"
1f092ca
environment variable is set.
1f092ca
1f092ca
If the "grub_users" isn't set, the menu entry is unrestricted and it can
1f092ca
be executed without any authentication and if is set then only the users
1f092ca
defined in "grub_users" can execute the menu entry after authentication.
1f092ca
1f092ca
But this field can contain an environment variable so has to be expanded
1f092ca
or otherwise grub2 will wrongly assume that the user is "$var", and will
1f092ca
populate a menu entry that it's resctrited even when "$var" isn't set.
1f092ca
1f092ca
Resolves: rhbz#1650706
1f092ca
1f092ca
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
1f092ca
---
1f092ca
 grub-core/commands/blscfg.c | 2 +-
1f092ca
 1 file changed, 1 insertion(+), 1 deletion(-)
1f092ca
1f092ca
diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c
1f092ca
index 42892cbfd55..c432c6ba27a 100644
1f092ca
--- a/grub-core/commands/blscfg.c
1f092ca
+++ b/grub-core/commands/blscfg.c
1f092ca
@@ -704,7 +704,7 @@ static void create_entry (struct bls_entry *entry)
1f092ca
   initrds = bls_make_list (entry, "initrd", NULL);
1f092ca
 
1f092ca
   hotkey = bls_get_val (entry, "grub_hotkey", NULL);
1f092ca
-  users = bls_get_val (entry, "grub_users", NULL);
1f092ca
+  users = expand_val (bls_get_val (entry, "grub_users", NULL));
1f092ca
   classes = bls_make_list (entry, "grub_class", NULL);
1f092ca
   args = bls_make_list (entry, "grub_arg", &argc);
1f092ca