From: Shreenidhi Shedi <shreenidhi.sh...@broadcom.com>

- Stop escaping single and double quotes
- Kernel command line handler doesn't support escape quotes

Signed-off-by: Shreenidhi Shedi <shreenidhi.sh...@broadcom.com>
---
 grub-core/lib/cmdline.c | 17 +++--------------
 1 file changed, 3 insertions(+), 14 deletions(-)

diff --git a/grub-core/lib/cmdline.c b/grub-core/lib/cmdline.c
index ed0b149dc..57c96a151 100644
--- a/grub-core/lib/cmdline.c
+++ b/grub-core/lib/cmdline.c
@@ -22,7 +22,6 @@
 
 static unsigned int check_arg (char *c, int *has_space)
 {
-  int space = 0;
   unsigned int size = 0;
 
   while (*c)
@@ -51,15 +50,9 @@ unsigned int grub_loader_cmdline_size (int argc, char 
*argv[])
   unsigned int size = 0;
 
   for (i = 0; i < argc; i++)
-    {
       size += check_arg (argv[i], 0);
-      size++; /* Separator space or NULL.  */
-    }
-
-  if (size == 0)
-    size = 1;
 
-  return size;
+  return size ? size : 1;
 }
 
 grub_err_t
@@ -73,8 +66,8 @@ grub_create_loader_cmdline (int argc, char *argv[], char *buf,
   for (i = 0; i < argc; i++)
     {
       c = argv[i];
+      space = 0;
       arg_size = check_arg(argv[i], &space);
-      arg_size++; /* Separator space or NULL.  */
 
       if (size < arg_size)
        break;
@@ -86,11 +79,7 @@ grub_create_loader_cmdline (int argc, char *argv[], char 
*buf,
 
       while (*c)
        {
-         if (*c == '\\' || *c == '\'' || *c == '"')
-           *buf++ = '\\';
-
-         *buf++ = *c;
-         c++;
+         *buf++ = *c++;
        }
 
       if (space)
-- 
2.40.4


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to