[glib] GVariant: fix some more leaks in error cases



commit d44ae96cb1566447ce44034b8b9290badacb6fe4
Author: Ryan Lortie <desrt desrt ca>
Date:   Sat Jul 10 17:54:08 2010 -0400

    GVariant: fix some more leaks in error cases

 glib/gvariant-parser.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
---
diff --git a/glib/gvariant-parser.c b/glib/gvariant-parser.c
index 3379c4c..68c063d 100644
--- a/glib/gvariant-parser.c
+++ b/glib/gvariant-parser.c
@@ -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;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]