GVariant: fix some more leaks in error cases
authorRyan Lortie <desrt@desrt.ca>
Sat, 10 Jul 2010 21:54:08 +0000 (17:54 -0400)
committerRyan Lortie <desrt@desrt.ca>
Sat, 10 Jul 2010 23:15:59 +0000 (19:15 -0400)
glib/gvariant-parser.c

index 3379c4c..68c063d 100644 (file)
@@ -1516,6 +1516,7 @@ string_parse (TokenStream  *stream,
         parser_set_error (error, &ref, NULL,
                           "unterminated string constant");
         g_free (token);
+        g_free (str);
         return NULL;
 
       case '\\':
@@ -1525,12 +1526,14 @@ string_parse (TokenStream  *stream,
             parser_set_error (error, &ref, NULL,
                               "unterminated string constant");
             g_free (token);
+            g_free (str);
             return NULL;
 
           case 'u':
             if (!unicode_unescape (token, &i, str, &j, 4, &ref, error))
               {
                 g_free (token);
+                g_free (str);
                 return NULL;
               }
             continue;
@@ -1539,6 +1542,7 @@ string_parse (TokenStream  *stream,
             if (!unicode_unescape (token, &i, str, &j, 8, &ref, error))
               {
                 g_free (token);
+                g_free (str);
                 return NULL;
               }
             continue;