Prevent segfaults on long paths. (#447935, Robby Griffin)
authorMatthias Clasen <mclasen@redhat.com>
Mon, 18 Jun 2007 16:35:41 +0000 (16:35 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Mon, 18 Jun 2007 16:35:41 +0000 (16:35 +0000)
2007-06-17  Matthias Clasen  <mclasen@redhat.com>

        * glib/gutils (g_get_current_dir): Prevent segfaults on
        long paths.  (#447935, Robby Griffin)

svn path=/trunk/; revision=5574

ChangeLog
glib/gutils.c

index 4b3e1d2..d10b989 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-06-17  Matthias Clasen  <mclasen@redhat.com>
+
+       * glib/gutils (g_get_current_dir): Prevent segfaults on
+       long paths.  (#447935, Robby Griffin)
+
 2007-06-17  Behdad Esfahbod  <behdad@gnome.org>
 
        * glib/gdataset.c (g_quark_from_string),
@@ -16,7 +21,7 @@
        called. (#447583)
 
        * glib/gthread.c (g_static_mutex_free): Clarified comment to
-       remind myself, tha calling g_static_mutex_free() before
+       remind myself, that calling g_static_mutex_free() before
        g_thread_init() is safe.
 
 2007-06-15  Cody Russell  <bratsche@gnome.org>
index 2e1a147..225e3a6 100644 (file)
@@ -964,6 +964,7 @@ g_get_current_dir (void)
 #else  /* !sun || !HAVE_GETCWD */
   while (max_len < G_MAXULONG / 2)
     {
+      g_free (buffer);
       buffer = g_new (gchar, max_len + 1);
       *buffer = 0;
       dir = getcwd (buffer, max_len);
@@ -971,7 +972,6 @@ g_get_current_dir (void)
       if (dir || errno != ERANGE)
        break;
 
-      g_free (buffer);
       max_len *= 2;
     }
 #endif /* !sun || !HAVE_GETCWD */