diff --git a/glib/gfileutils.c b/glib/gfileutils.c index 676c08c21..8bff0e9c5 100644 --- a/glib/gfileutils.c +++ b/glib/gfileutils.c @@ -248,9 +248,12 @@ g_mkdir_with_parents (const gchar *pathname, if (g_mkdir (fn, mode) == -1 && errno != EEXIST) { int errno_save = errno; - g_free (fn); - errno = errno_save; - return -1; + if (p && errno != ENOENT) + { + g_free (fn); + errno = errno_save; + return -1; + } } } else if (!g_file_test (fn, G_FILE_TEST_IS_DIR))