gfileutils: Ignore ENOENT from all except the last element

Ignore ENOENT errors up until the last element while trying to create each
of the path elements in case a restricted file-system is being used where
path elements can be hidden or non-accessible.
This commit is contained in:
Robert Nagy 2019-05-13 18:38:22 +02:00 committed by Philip Withnall
parent b482a5c1a9
commit 6f55306e04

View File

@ -248,11 +248,14 @@ g_mkdir_with_parents (const gchar *pathname,
if (g_mkdir (fn, mode) == -1 && errno != EEXIST) if (g_mkdir (fn, mode) == -1 && errno != EEXIST)
{ {
int errno_save = errno; int errno_save = errno;
if (p && errno != ENOENT)
{
g_free (fn); g_free (fn);
errno = errno_save; errno = errno_save;
return -1; return -1;
} }
} }
}
else if (!g_file_test (fn, G_FILE_TEST_IS_DIR)) else if (!g_file_test (fn, G_FILE_TEST_IS_DIR))
{ {
g_free (fn); g_free (fn);