From: Masayoshi Mizuma m.mizuma@jp.fujitsu.com
[ Upstream commit 68911069f509ba3bf0f513d9af00309e07932906 ]
ktest fails if meta characters are in GRUB_MENU, for example GRUB_MENU = 'Fedora (test)'
The failure happens because the meta characters are not escaped, so the menu doesn't match in any entries in GRUB_FILE.
Use quotemeta() to escape the meta characters.
Link: http://lkml.kernel.org/r/20190417235823.18176-1-msys.mizuma@gmail.com
Signed-off-by: Masayoshi Mizuma m.mizuma@jp.fujitsu.com Signed-off-by: Steven Rostedt (VMware) rostedt@goodmis.org Stable-dep-of: 26df05a8c142 ("kest.pl: Fix grub2 menu handling for rebooting") Signed-off-by: Sasha Levin sashal@kernel.org --- tools/testing/ktest/ktest.pl | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/tools/testing/ktest/ktest.pl b/tools/testing/ktest/ktest.pl index 92663d123be1..635121ecf543 100755 --- a/tools/testing/ktest/ktest.pl +++ b/tools/testing/ktest/ktest.pl @@ -1866,9 +1866,10 @@ sub get_grub2_index { or dodie "unable to get $grub_file";
my $found = 0; + my $grub_menu_qt = quotemeta($grub_menu);
while (<IN>) { - if (/^menuentry.*$grub_menu/) { + if (/^menuentry.*$grub_menu_qt/) { $grub_number++; $found = 1; last; @@ -1909,9 +1910,10 @@ sub get_grub_index { or dodie "unable to get menu.lst";
my $found = 0; + my $grub_menu_qt = quotemeta($grub_menu);
while (<IN>) { - if (/^\s*title\s+$grub_menu\s*$/) { + if (/^\s*title\s+$grub_menu_qt\s*$/) { $grub_number++; $found = 1; last;