g_strcompress: check that source is non-NULL rather than just crashing
authorSimon McVittie <simon.mcvittie@collabora.co.uk>
Mon, 12 Dec 2011 18:37:10 +0000 (18:37 +0000)
committerSimon McVittie <simon.mcvittie@collabora.co.uk>
Wed, 14 Dec 2011 12:26:17 +0000 (12:26 +0000)
Calling this function with a NULL argument is considered to be invalid,
but one of the regression tests does it anyway (to watch it crash), which
seems a good indication that it's expected to be somewhat common.
Let's check it rather than segfaulting.

Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=666113
Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
Reviewed-by: Matthias Clasen <mclasen@redhat.com>
glib/gstrfuncs.c

index 7109930..63e1be9 100644 (file)
@@ -1977,8 +1977,13 @@ gchar *
 g_strcompress (const gchar *source)
 {
   const gchar *p = source, *octal;
-  gchar *dest = g_malloc (strlen (source) + 1);
-  gchar *q = dest;
+  gchar *dest;
+  gchar *q;
+
+  g_return_val_if_fail (source != NULL, NULL);
+
+  dest = g_malloc (strlen (source) + 1);
+  q = dest;
 
   while (*p)
     {