]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/script/script.c (grub_script_parse): Free parsed on
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 28 Aug 2010 13:34:29 +0000 (15:34 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 28 Aug 2010 13:34:29 +0000 (15:34 +0200)
failure.

ChangeLog
grub-core/script/script.c

index 0779d7c8fa0262053c1c4d54dc1f9e9cdb3b4a5b..2ffbbcd7bcb01bdf5f319c709746b0680870c019 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-08-28  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/script/script.c (grub_script_parse): Free parsed on
+       failure.
+
 2010-08-28  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/normal/completion.c (grub_normal_do_completion): Free argv
index 9cee40dcb81ef51210539813cfb9e78cfa5a1167..448bdf77580b7fe708b1adec9b27ea174578e775 100644 (file)
@@ -365,7 +365,10 @@ grub_script_parse (char *script, grub_reader_getline_t getline)
 
   parsestate = grub_zalloc (sizeof (*parsestate));
   if (!parsestate)
-    return 0;
+    {
+      grub_free (parsed);
+      return 0;
+    }
 
   /* Initialize the lexer.  */
   lexstate = grub_script_lexer_init (parsestate, script, getline);
@@ -388,6 +391,7 @@ grub_script_parse (char *script, grub_reader_getline_t getline)
       grub_script_mem_free (memfree);
       grub_script_lexer_fini (lexstate);
       grub_free (parsestate);
+      grub_free (parsed);
       return 0;
     }