core: Ensure we chown created directories too

This commit is contained in:
Colin Walters 2011-12-06 20:16:03 -05:00
parent c32141c2bf
commit a94e0b8bf8
2 changed files with 17 additions and 10 deletions

View File

@ -884,7 +884,16 @@ ostree_create_file_from_input (GFile *dest_file,
} }
dest_path = ot_gfile_get_path_cached (dest_file); dest_path = ot_gfile_get_path_cached (dest_file);
if (S_ISREG (mode)) if (S_ISDIR (mode))
{
if (mkdir (ot_gfile_get_path_cached (dest_file),
g_file_info_get_attribute_uint32 (finfo, "unix::mode")) < 0)
{
ot_util_set_error_from_errno (error, errno);
goto out;
}
}
else if (S_ISREG (mode))
{ {
out = g_file_create (dest_file, 0, cancellable, error); out = g_file_create (dest_file, 0, cancellable, error);
if (!out) if (!out)

View File

@ -1995,16 +1995,14 @@ checkout_one_directory (OstreeRepo *self,
if (!_ostree_repo_file_get_xattrs (dir, &xattr_variant, NULL, error)) if (!_ostree_repo_file_get_xattrs (dir, &xattr_variant, NULL, error))
goto out; goto out;
if (mkdir (dest_path, (mode_t)g_file_info_get_attribute_uint32 (dir_info, "unix::mode")) < 0) if (!ostree_create_file_from_input (dest_file, dir_info,
{ xattr_variant,
ot_util_set_error_from_errno (error, errno); NULL,
g_prefix_error (error, "Failed to create directory '%s': ", dest_path); OSTREE_OBJECT_TYPE_FILE,
goto out; NULL,
} cancellable, error))
if (!ostree_set_xattrs (dest_file, xattr_variant, cancellable, error))
goto out; goto out;
if (!checkout_tree (self, dir, dest_path, cancellable, error)) if (!checkout_tree (self, dir, dest_path, cancellable, error))
goto out; goto out;