Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Bazaar merge directive format 2 (Bazaar 0.90)
- # revision_id: bvk.groups@gmail.com-20101119133844-8ciru7ax60j20bdx
- # target_branch: file:///home/bvk/Work/grub2/mainline/
- # testament_sha1: 5f9d33dbfb4e5d65ecf9b0e5daa0d2f58ae1a9a9
- # timestamp: 2010-11-24 15:44:52 +0530
- # base_revision_id: phcoder@gmail.com-20101118010801-nvowxh466xqfwvwe
- #
- # Begin patch
- === modified file 'ChangeLog'
- --- ChangeLog 2010-11-18 01:08:01 +0000
- +++ ChangeLog 2010-11-19 13:38:44 +0000
- @@ -1,3 +1,17 @@
- +2010-11-19 BVK Chaitanya <bvk.groups@gmail.com>
- +
- + Fix quoting in setparams in handling menuentry command.
- +
- + * grub-core/commands/menuentry.c (setparams_prefix): Use single
- + quotes for arguments.
- + * grub-core/lib/legacy_parse.c (grub_legacy_escape): Use
- + grub_script_escape_squotes function instead.
- +
- + * include/grub/script_sh.h (grub_script_escape_squotes): New
- + prototype.
- + * grub-core/script/script.c (grub_script_escape_squotes): New
- + function.
- +
- 2010-11-18 Vladimir Serbinenko <phcoder@gmail.com>
- * grub-core/normal/menu_entry.c (print_up): Fix displacement of up
- === modified file 'grub-core/commands/menuentry.c'
- --- grub-core/commands/menuentry.c 2010-09-20 22:47:49 +0000
- +++ grub-core/commands/menuentry.c 2010-11-19 13:38:44 +0000
- @@ -24,6 +24,7 @@
- #include <grub/extcmd.h>
- #include <grub/i18n.h>
- #include <grub/normal.h>
- +#include <grub/script_sh.h>
- static const struct grub_arg_option options[] =
- {
- @@ -206,20 +207,6 @@
- char *p;
- char *result;
- grub_size_t len = 10;
- - static const char *escape_characters = "\"\\";
- -
- - auto char *strescpy (char *, const char *, const char *);
- - char * strescpy (char *d, const char *s, const char *escapes)
- - {
- - while (*s)
- - {
- - if (grub_strchr (escapes, *s))
- - *d++ = '\\';
- - *d++ = *s++;
- - }
- - *d = '\0';
- - return d;
- - }
- /* Count resulting string length */
- for (i = 0; i < argc; i++)
- @@ -227,7 +214,7 @@
- len += 3; /* 3 = 1 space + 2 quotes */
- p = args[i];
- while (*p)
- - len += grub_strchr (escape_characters, *p++) ? 2 : 1;
- + len += (*p++ == '\'' ? 3 : 1);
- }
- result = grub_malloc (len + 2);
- @@ -235,17 +222,17 @@
- return 0;
- grub_strcpy (result, "setparams");
- - i = 9;
- + p = result + 9;
- for (j = 0; j < argc; j++)
- {
- - result[i++] = ' ';
- - result[i++] = '"';
- - i = strescpy (result + i, args[j], escape_characters) - result;
- - result[i++] = '"';
- + *p++ = ' ';
- + *p++ = '\'';
- + p = grub_script_escape_squotes (p, args[j], grub_strlen (args[j]));
- + *p++ = '\'';
- }
- - result[i++] = '\n';
- - result[i] = '\0';
- + *p++ = '\n';
- + *p = '\0';
- return result;
- }
- === modified file 'grub-core/lib/legacy_parse.c'
- --- grub-core/lib/legacy_parse.c 2010-11-14 23:33:28 +0000
- +++ grub-core/lib/legacy_parse.c 2010-11-19 13:38:44 +0000
- @@ -20,6 +20,7 @@
- #include <grub/misc.h>
- #include <grub/mm.h>
- #include <grub/err.h>
- +#include <grub/script_sh.h>
- #include <grub/legacy_parse.h>
- #include <grub/i386/pc/vesa_modes_table.h>
- @@ -323,30 +324,16 @@
- grub_legacy_escape (const char *in, grub_size_t len)
- {
- const char *ptr;
- - char *ret, *outptr;
- + char *outptr;
- int overhead = 0;
- for (ptr = in; ptr < in + len && *ptr; ptr++)
- if (*ptr == '\'')
- overhead += 3;
- - ret = grub_malloc (ptr - in + overhead + 1);
- - if (!ret)
- + outptr = grub_malloc (ptr - in + overhead + 1);
- + if (!outptr)
- return NULL;
- - outptr = ret;
- - for (ptr = in; ptr < in + len && *ptr; ptr++)
- - {
- - if (*ptr == '\'')
- - {
- - *outptr++ = '\'';
- - *outptr++ = '\\';
- - *outptr++ = '\'';
- - *outptr++ = '\'';
- - continue;
- - }
- -
- - *outptr++ = *ptr;
- - }
- - *outptr++ = 0;
- - return ret;
- + grub_script_escape_squotes (outptr, in, len);
- + return outptr;
- }
- static char *
- === modified file 'grub-core/script/script.c'
- --- grub-core/script/script.c 2010-09-04 16:43:45 +0000
- +++ grub-core/script/script.c 2010-11-19 13:38:44 +0000
- @@ -22,6 +22,27 @@
- #include <grub/parser.h>
- #include <grub/mm.h>
- +/* Escape single quotes in first `len' characters of `in' into a GRUB
- + script argument form into `out'; return address of the end in
- + `out'. */
- +char *
- +grub_script_escape_squotes (char *out, const char *in, grub_size_t len)
- +{
- + while (*in && len--)
- + {
- + *out++ = *in;
- + if (*in == '\'')
- + {
- + *out++ = '\\';
- + *out++ = '\'';
- + *out++ = '\'';
- + }
- + in++;
- + }
- + *out = '\0';
- + return out;
- +}
- +
- /* It is not possible to deallocate the memory when a syntax error was
- found. Because of that it is required to keep track of all memory
- allocations. The memory is freed in case of an error, or assigned
- === modified file 'include/grub/script_sh.h'
- --- include/grub/script_sh.h 2010-09-04 17:04:32 +0000
- +++ include/grub/script_sh.h 2010-11-19 13:38:44 +0000
- @@ -382,6 +382,9 @@
- grub_err_t
- grub_normal_parse_line (char *line, grub_reader_getline_t getline);
- +char *
- +grub_script_escape_squotes (char *out, const char *in, grub_size_t len);
- +
- static inline struct grub_script *
- grub_script_ref (struct grub_script *script)
- {
- # Begin bundle
- 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
- /3fOI5p/2LuSKcKEgcGJPQg=
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement