Set length out param in list-returning functions to 0 when returning NULL.
authorMatthias Clasen <mclasen@redhat.com>
Fri, 23 Nov 2007 04:17:58 +0000 (04:17 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Fri, 23 Nov 2007 04:17:58 +0000 (04:17 +0000)
2007-11-22  Matthias Clasen  <mclasen@redhat.com>

        * glib/gkeyfile.c: Set length out param in list-returning functions
        to 0 when returning NULL.  (#498728, Christian Persch)

svn path=/trunk/; revision=5915

ChangeLog
glib/gkeyfile.c

index 1ddca7c..2f1276b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-11-22  Matthias Clasen  <mclasen@redhat.com>
+
+       * glib/gkeyfile.c: Set length out param in list-returning functions
+       to 0 when returning NULL.  (#498728, Christian Persch)
+
 2007-11-21 21:06:47  Tim Janik  <timj@imendio.com>
 
        * Makefile.decl: initialize automake variables EXTRA_DIST and
index 971b32b..72c5761 100644 (file)
@@ -1462,6 +1462,9 @@ g_key_file_get_string_list (GKeyFile     *key_file,
   g_return_val_if_fail (group_name != NULL, NULL);
   g_return_val_if_fail (key != NULL, NULL);
 
+  if (length)
+    *length = 0;
+
   value = g_key_file_get_value (key_file, group_name, key, &key_file_error);
 
   if (key_file_error)
@@ -1744,7 +1747,11 @@ g_key_file_get_locale_string_list (GKeyFile     *key_file,
     g_propagate_error (error, key_file_error);
   
   if (!value)
-    return NULL;
+    {
+      if (length)
+        *length = 0;
+      return NULL;
+    }
 
   if (value[strlen (value) - 1] == ';')
     value[strlen (value) - 1] = '\0';
@@ -1940,6 +1947,9 @@ g_key_file_get_boolean_list (GKeyFile     *key_file,
   g_return_val_if_fail (group_name != NULL, NULL);
   g_return_val_if_fail (key != NULL, NULL);
 
+  if (length)
+    *length = 0;
+
   key_file_error = NULL;
 
   values = g_key_file_get_string_list (key_file, group_name, key,
@@ -2152,6 +2162,9 @@ g_key_file_get_integer_list (GKeyFile     *key_file,
   g_return_val_if_fail (group_name != NULL, NULL);
   g_return_val_if_fail (key != NULL, NULL);
 
+  if (length)
+    *length = 0;
+
   values = g_key_file_get_string_list (key_file, group_name, key,
                                       &num_ints, &key_file_error);
 
@@ -2361,6 +2374,9 @@ g_key_file_get_double_list  (GKeyFile     *key_file,
   g_return_val_if_fail (group_name != NULL, NULL);
   g_return_val_if_fail (key != NULL, NULL);
 
+  if (length)
+    *length = 0;
+
   values = g_key_file_get_string_list (key_file, group_name, key,
                                        &num_doubles, &key_file_error);
 
@@ -3322,7 +3338,7 @@ g_key_file_is_key_name (const gchar *name)
     return FALSE;
 
   /* We accept spaces in the middle of keys to not break
-   * existing apps, but we don't tolerate initial of final
+   * existing apps, but we don't tolerate initial or final
    * spaces, which would lead to silent corruption when
    * rereading the file.
    */