From: Alexander Larsson Date: Wed, 4 Mar 2009 13:47:53 +0000 (+0000) Subject: Bug 573843 – g_get_current_dir returns non-absolute path X-Git-Url: http://git.openbox.org/?a=commitdiff_plain;h=70a276eca32744525f06edc09e77aed07276abca;p=dana%2Fcg-glib.git Bug 573843 – g_get_current_dir returns non-absolute path 2009-03-04 Alexander Larsson Bug 573843 – g_get_current_dir returns non-absolute path * glocalfile.c (canonicalize_filename): Handle the case where g_get_current_dir() returns a non-absolute path. svn path=/trunk/; revision=7958 --- diff --git a/gio/ChangeLog b/gio/ChangeLog index 6df6bc29..1417f65d 100644 --- a/gio/ChangeLog +++ b/gio/ChangeLog @@ -1,3 +1,10 @@ +2009-03-04 Alexander Larsson + + Bug 573843 – g_get_current_dir returns non-absolute path + + * glocalfile.c (canonicalize_filename): + Handle the case where g_get_current_dir() returns a non-absolute path. + 2009-03-04 Alexander Larsson Bug 573970 – crash in gunixvolumemonitor:update_mounts when unmounting diff --git a/gio/glocalfile.c b/gio/glocalfile.c index 217ee988..b1d7353d 100644 --- a/gio/glocalfile.c +++ b/gio/glocalfile.c @@ -244,6 +244,15 @@ canonicalize_filename (const char *filename) start = (char *)g_path_skip_root (canon); + if (start == NULL) + { + /* This shouldn't really happen, as g_get_current_dir() should + return an absolute pathname, but bug 573843 shows this is + not always happening */ + g_free (canon); + return g_build_filename (G_DIR_SEPARATOR_S, filename, NULL); + } + /* POSIX allows double slashes at the start to * mean something special (as does windows too). * So, "//" != "/", but more than two slashes