]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/normal/cmdline.c (grub_cmdline_get): Plug memory leak.
authorVladimir Serbinenko <phcoder@gmail.com>
Mon, 18 Nov 2013 01:43:29 +0000 (02:43 +0100)
committerVladimir Serbinenko <phcoder@gmail.com>
Mon, 18 Nov 2013 01:43:29 +0000 (02:43 +0100)
ChangeLog
grub-core/normal/cmdline.c

index ea7f15c33bac82d295e6652eb11058e8e1a2b3c5..c93e3d103136b5a761e96dc9c0020b29a38acc4e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2013-11-18  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/normal/cmdline.c (grub_cmdline_get): Plug memory leak.
+
 2013-11-18  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/kern/file.c (grub_file_open): Free file->name on failure.
index 2ef500ffbb1da3af3fd5af0e1c150fd0cbe04793..204d15a4bb87ecc6375d180f61e631ecd9c320ca 100644 (file)
@@ -379,12 +379,18 @@ grub_cmdline_get (const char *prompt_translated)
 
     cl_terms = grub_malloc (sizeof (cl_terms[0]) * nterms);
     if (!cl_terms)
-      return 0;
+      {
+       grub_free (buf);
+       return 0;
+      }
     cl_term_cur = cl_terms;
 
     unicode_msg = grub_malloc (msg_len * sizeof (grub_uint32_t));
     if (!unicode_msg)
-      return 0;;
+      {
+       grub_free (buf);
+       return 0;
+      }
     msg_len = grub_utf8_to_ucs4 (unicode_msg, msg_len - 1,
                                 (grub_uint8_t *) prompt_translated, -1, 0);
     unicode_msg[msg_len++] = ' ';
@@ -621,6 +627,7 @@ grub_cmdline_get (const char *prompt_translated)
 
        case '\e':
          grub_free (cl_terms);
+         grub_free (buf);
          return 0;
 
        case '\b':