When creating a directory fails for some reason other than
the parent not existing, don't clear the error before we try
to propagate it.
To reproduce, run 'ostadmin init' on /ostree or otherwise try to
run the function on a directory with a parent directory where the
current user is not allowed to write.
https://bugzilla.gnome.org/show_bug.cgi?id=680823
work_file = g_object_ref (parent_file);
if (!result && my_error->code == G_IO_ERROR_NOT_FOUND)
- list = g_list_prepend (list, parent_file); /* Transfer ownership of ref */
+ {
+ g_clear_error (&my_error);
+ list = g_list_prepend (list, parent_file); /* Transfer ownership of ref */
+ }
else
g_object_unref (parent_file);
}
- g_clear_error (&my_error);
for (l = list; result && l; l = l->next)
{
result = g_file_make_directory ((GFile *) l->data, cancellable, &my_error);