Advertisement
Guest User

Untitled

a guest
Jun 30th, 2017
508
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 8.78 KB | None | 0 0
  1. # Bazaar merge directive format 2 (Bazaar 0.90)
  2. # revision_id: bvk.groups@gmail.com-20101119133844-8ciru7ax60j20bdx
  3. # target_branch: file:///home/bvk/Work/grub2/mainline/
  4. # testament_sha1: 5f9d33dbfb4e5d65ecf9b0e5daa0d2f58ae1a9a9
  5. # timestamp: 2010-11-24 15:44:52 +0530
  6. # base_revision_id: phcoder@gmail.com-20101118010801-nvowxh466xqfwvwe
  7. #
  8. # Begin patch
  9. === modified file 'ChangeLog'
  10. --- ChangeLog   2010-11-18 01:08:01 +0000
  11. +++ ChangeLog   2010-11-19 13:38:44 +0000
  12. @@ -1,3 +1,17 @@
  13. +2010-11-19  BVK Chaitanya  <bvk.groups@gmail.com>
  14. +
  15. +   Fix quoting in setparams in handling menuentry command.
  16. +
  17. +   * grub-core/commands/menuentry.c (setparams_prefix): Use single
  18. +   quotes for arguments.
  19. +   * grub-core/lib/legacy_parse.c (grub_legacy_escape): Use
  20. +   grub_script_escape_squotes function instead.
  21. +
  22. +   * include/grub/script_sh.h (grub_script_escape_squotes): New
  23. +   prototype.
  24. +   * grub-core/script/script.c (grub_script_escape_squotes): New
  25. +   function.
  26. +
  27.  2010-11-18  Vladimir Serbinenko  <phcoder@gmail.com>
  28.  
  29.     * grub-core/normal/menu_entry.c (print_up): Fix displacement of up
  30.  
  31. === modified file 'grub-core/commands/menuentry.c'
  32. --- grub-core/commands/menuentry.c  2010-09-20 22:47:49 +0000
  33. +++ grub-core/commands/menuentry.c  2010-11-19 13:38:44 +0000
  34. @@ -24,6 +24,7 @@
  35.  #include <grub/extcmd.h>
  36.  #include <grub/i18n.h>
  37.  #include <grub/normal.h>
  38. +#include <grub/script_sh.h>
  39.  
  40.  static const struct grub_arg_option options[] =
  41.    {
  42. @@ -206,20 +207,6 @@
  43.    char *p;
  44.    char *result;
  45.    grub_size_t len = 10;
  46. -  static const char *escape_characters = "\"\\";
  47. -
  48. -  auto char *strescpy (char *, const char *, const char *);
  49. -  char * strescpy (char *d, const char *s, const char *escapes)
  50. -  {
  51. -    while (*s)
  52. -      {
  53. -   if (grub_strchr (escapes, *s))
  54. -     *d++ = '\\';
  55. -   *d++ = *s++;
  56. -      }
  57. -    *d = '\0';
  58. -    return d;
  59. -  }
  60.  
  61.    /* Count resulting string length */
  62.    for (i = 0; i < argc; i++)
  63. @@ -227,7 +214,7 @@
  64.        len += 3; /* 3 = 1 space + 2 quotes */
  65.        p = args[i];
  66.        while (*p)
  67. -   len += grub_strchr (escape_characters, *p++) ? 2 : 1;
  68. +   len += (*p++ == '\'' ? 3 : 1);
  69.      }
  70.  
  71.    result = grub_malloc (len + 2);
  72. @@ -235,17 +222,17 @@
  73.      return 0;
  74.  
  75.    grub_strcpy (result, "setparams");
  76. -  i = 9;
  77. +  p = result + 9;
  78.  
  79.    for (j = 0; j < argc; j++)
  80.      {
  81. -      result[i++] = ' ';
  82. -      result[i++] = '"';
  83. -      i = strescpy (result + i, args[j], escape_characters) - result;
  84. -      result[i++] = '"';
  85. +      *p++ = ' ';
  86. +      *p++ = '\'';
  87. +      p = grub_script_escape_squotes (p, args[j], grub_strlen (args[j]));
  88. +      *p++ = '\'';
  89.      }
  90. -  result[i++] = '\n';
  91. -  result[i] = '\0';
  92. +  *p++ = '\n';
  93. +  *p = '\0';
  94.    return result;
  95.  }
  96.  
  97.  
  98. === modified file 'grub-core/lib/legacy_parse.c'
  99. --- grub-core/lib/legacy_parse.c    2010-11-14 23:33:28 +0000
  100. +++ grub-core/lib/legacy_parse.c    2010-11-19 13:38:44 +0000
  101. @@ -20,6 +20,7 @@
  102.  #include <grub/misc.h>
  103.  #include <grub/mm.h>
  104.  #include <grub/err.h>
  105. +#include <grub/script_sh.h>
  106.  #include <grub/legacy_parse.h>
  107.  #include <grub/i386/pc/vesa_modes_table.h>
  108.  
  109. @@ -323,30 +324,16 @@
  110.  grub_legacy_escape (const char *in, grub_size_t len)
  111.  {
  112.    const char *ptr;
  113. -  char *ret, *outptr;
  114. +  char *outptr;
  115.    int overhead = 0;
  116.    for (ptr = in; ptr < in + len && *ptr; ptr++)
  117.      if (*ptr == '\'')
  118.        overhead += 3;
  119. -  ret = grub_malloc (ptr - in + overhead + 1);
  120. -  if (!ret)
  121. +  outptr = grub_malloc (ptr - in + overhead + 1);
  122. +  if (!outptr)
  123.      return NULL;
  124. -  outptr = ret;
  125. -  for (ptr = in; ptr < in + len && *ptr; ptr++)
  126. -    {
  127. -      if (*ptr == '\'')
  128. -   {
  129. -     *outptr++ = '\'';
  130. -     *outptr++ = '\\';
  131. -     *outptr++ = '\'';
  132. -     *outptr++ = '\'';
  133. -     continue;
  134. -   }
  135. -      
  136. -      *outptr++ = *ptr;
  137. -    }
  138. -  *outptr++ = 0;
  139. -  return ret;
  140. +  grub_script_escape_squotes (outptr, in, len);
  141. +  return outptr;
  142.  }
  143.  
  144.  static char *
  145.  
  146. === modified file 'grub-core/script/script.c'
  147. --- grub-core/script/script.c   2010-09-04 16:43:45 +0000
  148. +++ grub-core/script/script.c   2010-11-19 13:38:44 +0000
  149. @@ -22,6 +22,27 @@
  150.  #include <grub/parser.h>
  151.  #include <grub/mm.h>
  152.  
  153. +/* Escape single quotes in first `len' characters of `in' into a GRUB
  154. +   script argument form into `out'; return address of the end in
  155. +   `out'. */
  156. +char *
  157. +grub_script_escape_squotes (char *out, const char *in, grub_size_t len)
  158. +{
  159. +  while (*in && len--)
  160. +    {
  161. +      *out++ = *in;
  162. +      if (*in == '\'')
  163. +   {
  164. +     *out++ = '\\';
  165. +     *out++ = '\'';
  166. +     *out++ = '\'';
  167. +   }
  168. +      in++;
  169. +    }
  170. +  *out = '\0';
  171. +  return out;
  172. +}
  173. +
  174.  /* It is not possible to deallocate the memory when a syntax error was
  175.     found.  Because of that it is required to keep track of all memory
  176.     allocations.  The memory is freed in case of an error, or assigned
  177.  
  178. === modified file 'include/grub/script_sh.h'
  179. --- include/grub/script_sh.h    2010-09-04 17:04:32 +0000
  180. +++ include/grub/script_sh.h    2010-11-19 13:38:44 +0000
  181. @@ -382,6 +382,9 @@
  182.  grub_err_t
  183.  grub_normal_parse_line (char *line, grub_reader_getline_t getline);
  184.  
  185. +char *
  186. +grub_script_escape_squotes (char *out, const char *in, grub_size_t len);
  187. +
  188.  static inline struct grub_script *
  189.  grub_script_ref (struct grub_script *script)
  190.  {
  191.  
  192. # Begin bundle
  193. IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWTgxJ6EAB97fgFAwef///9uN
  194. lw7////6YAv+8+n29U7za1QAAALFc3dA1KOg6DpmwBJSaNJ5SNGhmiAGTankygA0AAAGg4yZNDEY
  195. mjAIwEwgDATTRpkaAYiam1PSg0AA0yAAAyAAAAABJqRJlPQmJo1QbKNkmm9RB5QAMjRpkHqAEUgh
  196. DIDSm0xU/SMKn4mieppo0jaIYBG9TT1BJEBA0mJoECZExMo0eiNlAAAGg11FqKfMf1BEuGMjy+Nm
  197. 7zpS7GwuOuLZ8TiQZrBoUynFtbFD2deuZHXnZ/wt2dmHNfnNmzdjU3I6aP2817X0tNUY1NKQz1NW
  198. 0auXZyu+EWAfBeiTE5F8Z6EJNffiY11Z71NyKrSTVoQTRMs+ohEkB3pjz7L2heJT0eXxIB6epGr9
  199. 56T1c9ix3nWmOoKiV6v6zMOMmROBEiIKCgoosv7JJ4Pby0SChy8ammhEyUAtkaCJZKUARLA+FE4Q
  200. Bd4osAma5pSrvecHLrqPW8eSo0z0oQUWdscN/FdiJ/EYYb/WzwYY2Zg25Frv6Qw2bwbOY6khx7El
  201. rYiJc23l23jfdiVmOx8yqUdFlg16uhj82osZ1p/uzWJfOk/alcPi3R9ZJaaHy1mqmDhDHPlUYldk
  202. rMmHBPiwYI5yNRMuFJUwp8rAyKmC5yYMb/Pjl7eMuqSurdBAH2HjzPTsf2SHPR3Zg0aTEoSigCPl
  203. 9WlI/D4+w34T29TPifL5A/oMl9GBx07s8kB18wirk9xMDBJbAwNm+tG+v57FThxN3QUOwL7TsIH2
  204. nsATsyqd4BkcHI9SPB5XugOoMo9srxO8T09xjn6a+i3XdqvZSZBI8gU2ihpF9nu7krVq7u7ujTdz
  205. m7684WaMnY05V+01Nnc55pBqYWZAXLKeQbW4Ou4GmEU9yeAzoLQCMEQEfDEpAHjkMfEoKlZkKWCt
  206. SQ7AiGAe33ZDLdkRykpBaQYSVyRQpNGFyhYLQpUyJaqComMjMS/BC0u9Ezhiwhp0ggpNTJRK2BTU
  207. yQHVcE6o0CZq5D6e1v0o33Khhh/m86MFkwgMFitS9UOCwm23PfnhPm81xcw1QteGUBLXMNhxwzQo
  208. 8C/78M+J71uuNZoYHwux4nTURB6whXo1qhIaQx7oawBF4wlLcv06rnNTLJ1ulYMT9XYy7OXnXZVL
  209. zLoYFuuJPRS4Q1qoDvfQiEXu2QuB6OALG4GlifgJMuntT4tkDGQ70GubZoNwEmjR3wcgMNY5PIRL
  210. SB7b6mPTAzjFm7k15nLkd3JCsiPjDha7vgkUEoGxwWw/bUp0vIYaDHIiON3F5Iy1bjcPvu2hTHnO
  211. WecbiSEzyNR97h2uwJ1aLmw8EzTaIlqU0jLCo6F9QTuvMMN0wXmO7YkCok0iEuJcbELSx4upjEM9
  212. IWvDcRX/whrXNdkwzF0RKxBgYcmaZSEp7tWTPI4sVKeQ9IXjWHnhLnMwEuJ03nUETu4U5ZCNtzsE
  213. 6khEscczDCxN9sTUWApAsNCHPcwVxvvkOQk15W0yPt3fYtjZ20HgkXvoUIAdqkhHLYKMDE8m0J8C
  214. +ZLbIe1pxQompeSJm++5kWJtgPdYxDcbCWsbPAlEiIeXsEn3DAotID17TiXZEuR1Y4wo5zgahTHM
  215. 5FpuMaFjBc1JI4mJ88CES/xQvWHwyDLi2dk7u5XlGEGH1lNxjAhsSkkUIufErshedCR096OiyHRt
  216. wiY0zTd2UCfjU1H5XNYy6HVCvQuOB/0Sxcx8ebmGM/ehWevMo0fDhlepBAIxHKNscSWs6Gj8DAgM
  217. JXl5Uwopk7iVTKBUmm1WOWRPcSzIkCNLXfVmko35jeUVoXExI4GEELghREnmNdCS4lx5zLyuxXTA
  218. c4FLG5EJ26F8d1QUHUcYYGGgeIWEYFOJYRyMPuDTLNOIq4S0tVIJTZNHUxY4MhLGSNgyYsZVEtJM
  219. cIh8gbEzu1Oo7bW4p23q6+GtoeaRGP1RhNCTbonvhSxDgVppWDTCyIxVwnj8U+k+IYWl+JuJ3Egd
  220. +e0FghETR2T10Gov3lCn2R5BUkVPI+J8j+JmUrYeAbh0vBT/RCcB8XcfXjA6puKiooB2lwzOm0mA
  221. QTCRTWDgZFUMcCKKzGbxAKTgaUNIDioePKyc54FBXPyi0B5i0m8Ja0SK8DxK3jBImDJFqJX04TSR
  222. ihZhu1ZUKLpiYj8dISS5dwvT8EzwxDPs28DcsHe3h2DUj4Gx5UMgUXYpQvEshj7oY95Aocs7jaNQ
  223. ShqCURhX7gn2n3PzSSIcggamHDzc9Z5lIFh3hw5SOJOR5iNucvRBvt1I3HODwKFrDHTrDUsu3j3G
  224. Z1IHkMf14iXaquUvMXeCQ5eYclA+iwEZ9ARjgMl2fn3vHWaj4eHTr59CRh3FTwOizLzwOCRMxLjK
  225. ZmheGpmXK2ZZAXlicj/A5suBoP4nqb7zK0pCz09gjlTNlosgruJc/0qg/qglBiF7cnHCCXukxntR
  226. ddenvcltD1mZDQRf2n9f135qSvOVMC8oaTmzHHeYLvWeWAM7EnObVgXmWhqdKtuHHk9hye4eSjr8
  227. Osea5a1gtF1KbCv5rW+79eZ30JPPs3/s0HQmC9fHSJ5odINKURgHXx1sh6LonyYE+AHS5MgwtjAJ
  228. 8jLagVbHqPVfw3w9Z2Ot4gdkeB3ek6TqeZenPDyPH0MM8CNBjIzse2wToL7TYJq+de5eQFvrcT/g
  229. mNRox1CSZfGob7CB5zIN7pqSFgDcJDTwBTxFDxvfHWfRPYQaZknqdSMGkMoc71j7PYFClATyDJBN
  230. CoFuQvwJJs8BZRSq6mWKxl5cSqQDFIs7zm3RGAKfSdCJaNv5wRAeeSZOPkS+Auy3VDztXl0PO2tl
  231. jEI7QTPuF94BrD3P9VC1DP4i8OLl7jMKEngjIxOIvccfAFMoOABg/WJMHwqhBAu/J3+uI5un1WBS
  232. uHPwYweHOadKTE8UarR5nRuQTZAQCmvilFp9WC5DWb3XsIIOTzDmmYGzOYEGYHMqa00NDZ9FSgby
  233. cwWohrXES5o6C2cxYTRa3lGhDCQ0aEqqQQhEKhCEwoFuJK3FcMxPzIDMUqCmmAMwhsZHuKhaJfeL
  234. VkB70fCiGoS+AunAodvEgdJ59s5nUGM+8pJfVZteYMArZ9md4s1hHoCVwl59sLrbB2ZrpueYobwT
  235. Rem5HuR2EfIOaF2EWEe0MW2GG5KWqWJR3PJFPppEiNbBYeTJntoqdt7wIzw+gO1kJYlxu0gmF4Gd
  236. l6a5w7RQsRuyJvkzkLRQumwEMKxuHSxeHRRvMHMkDKY3+zGefIDdx8qrtkaVLz1712Q4ZHh5CWOl
  237. RkqS85wCoGyTexUzpTwC77R01wlKCT+fPLXkxWpECMEyPmIhNtGi1WB9IuAZHQHvoz69T83ETEW9
  238. 0JxRhJ6GuLsGQXHZyE2GcWEK+h2ptGtVcsI4vrEtbqi9YQoc2xuBxEwcy4kjEW8KZhQnY366K5EI
  239. mAdYCTC4T6go6BP8B7d3boDMGsxgYCE5xYzBcGZA4+gN8daMAHRNNYT24VEv5ZxPoxwYE3haJ3bT
  240. /3fOI5p/2LuSKcKEgcGJPQg=
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement