|
|
8631a2 |
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
8631a2 |
From: Javier Martinez Canillas <javierm@redhat.com>
|
|
|
8631a2 |
Date: Thu, 7 Jun 2018 00:44:51 +0200
|
|
|
8631a2 |
Subject: [PATCH] Skip leading spaces on BLS field values
|
|
|
8631a2 |
|
|
|
8631a2 |
The GRUB 2 blscfg command doesn't parse correctly the BLS fields if these
|
|
|
8631a2 |
have extra spaces before the field values. For example, the following BLS
|
|
|
8631a2 |
fragment generates a wrong menu entry due using spaces to tabulate values:
|
|
|
8631a2 |
|
|
|
8631a2 |
title Fedora 28 (Twenty Eight)
|
|
|
8631a2 |
version 4.16.13-300.fc28.x86_64
|
|
|
8631a2 |
machine-id e5c131dfee3249cbb9891c2641d8e350
|
|
|
8631a2 |
linux /vmlinuz-4.16.13-300.fc28.x86_64
|
|
|
8631a2 |
initrd /initramfs-4.16.13-300.fc28.x86_64.img
|
|
|
8631a2 |
options root=/dev/mapper/fedora-root ro
|
|
|
8631a2 |
|
|
|
8631a2 |
Wrong generated menu entry:
|
|
|
8631a2 |
|
|
|
8631a2 |
load_video
|
|
|
8631a2 |
set gfx_payload=keep
|
|
|
8631a2 |
insmod gzio
|
|
|
8631a2 |
linux ($root) /vmlinuz-4.16.13-300.fc28.x86_64 root=/dev/mapper/fedora-root ro
|
|
|
8631a2 |
initrd ($root) /initramfs-4.16.13-300.fc28.x86_64.img
|
|
|
8631a2 |
|
|
|
8631a2 |
Correct menu entry after the fix:
|
|
|
8631a2 |
|
|
|
8631a2 |
load_video
|
|
|
8631a2 |
set gfx_payload=keep
|
|
|
8631a2 |
insmod gzio
|
|
|
8631a2 |
linux ($root)/vmlinuz-4.16.13-300.fc28.x86_64 root=/dev/mapper/fedora-root ro
|
|
|
8631a2 |
initrd ($root)/initramfs-4.16.13-300.fc28.x86_64.img
|
|
|
8631a2 |
|
|
|
8631a2 |
Resolves: rhbz#1588184
|
|
|
8631a2 |
|
|
|
8631a2 |
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
|
|
|
8631a2 |
---
|
|
|
8631a2 |
grub-core/commands/blscfg.c | 6 +++++-
|
|
|
8631a2 |
1 file changed, 5 insertions(+), 1 deletion(-)
|
|
|
8631a2 |
|
|
|
8631a2 |
diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c
|
|
|
030dc3 |
index fb08d8e4c12..831cdcaccdf 100644
|
|
|
8631a2 |
--- a/grub-core/commands/blscfg.c
|
|
|
8631a2 |
+++ b/grub-core/commands/blscfg.c
|
|
|
8631a2 |
@@ -448,7 +448,11 @@ static int read_entry (
|
|
|
8631a2 |
|
|
|
8631a2 |
separator[0] = '\0';
|
|
|
8631a2 |
|
|
|
8631a2 |
- rc = bls_add_keyval (entry, buf, separator+1);
|
|
|
8631a2 |
+ do {
|
|
|
8631a2 |
+ separator++;
|
|
|
8631a2 |
+ } while (*separator == ' ' || *separator == '\t');
|
|
|
8631a2 |
+
|
|
|
8631a2 |
+ rc = bls_add_keyval (entry, buf, separator);
|
|
|
8631a2 |
grub_free (buf);
|
|
|
8631a2 |
if (rc < 0)
|
|
|
8631a2 |
break;
|