And this bug report seems relevant .. https://savannah.gnu.org/bugs/?49937
On Wed, Apr 11, 2018 at 04:58:54PM +0800, Michael Chang wrote: > The command line has been processed by grub shell, then the result is expected > to be passed to kernel command line as verbatim according to the grub manual > [1][2]. > > This patch removes extra escape character added as it helps nothing but only > creates trouble as you want them to be literal. Besides the surrounding > double-quotes added is kept as it used to protect space. > > [1] https://www.gnu.org/software/grub/manual/grub/html_node/linux.html#linux > [2] > https://www.gnu.org/software/grub/manual/grub/html_node/xen_005fhypervisor.html > > Signed-off-by: Michael Chang <mch...@suse.com> > --- > grub-core/lib/cmdline.c | 12 ++---------- > 1 file changed, 2 insertions(+), 10 deletions(-) > > diff --git a/grub-core/lib/cmdline.c b/grub-core/lib/cmdline.c > index d5e10ee87..26b8131c8 100644 > --- a/grub-core/lib/cmdline.c > +++ b/grub-core/lib/cmdline.c > @@ -27,9 +27,7 @@ static unsigned int check_arg (char *c, int *has_space) > > while (*c) > { > - if (*c == '\\' || *c == '\'' || *c == '"') > - size++; > - else if (*c == ' ') > + if (*c == ' ') > space = 1; > > size++; > @@ -84,13 +82,7 @@ int grub_create_loader_cmdline (int argc, char *argv[], > char *buf, > *buf++ = '"'; > > while (*c) > - { > - if (*c == '\\' || *c == '\'' || *c == '"') > - *buf++ = '\\'; > - > - *buf++ = *c; > - c++; > - } > + *buf++ = *c++; > > if (space) > *buf++ = '"'; > -- > 2.16.1 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel