mirror of
https://github.com/ostreedev/ostree.git
synced 2025-02-07 05:57:58 +03:00
libarchive: Fix assertion error if used with CANONICAL_PERMISSIONS
I was trying to do a change for rpm-ostree to use `OSTREE_REPO_COMMIT_MODIFIER_FLAGS_CANONICAL_PERMISSIONS` for container builds with `bare-user-only,` but hit an assertion here ultimtely because we weren't setting `standard::type`. Rather than hand-rolling `GFileInfo` creation, use the stat buffer conversion code which is more robust and used in multiple places already. Closes: #1227 Approved by: jlebon
This commit is contained in:
parent
6c7302fcdd
commit
a7f04a14b5
@ -871,10 +871,14 @@ ostree_repo_import_archive_to_mtree (OstreeRepo *self,
|
||||
if (opts->autocreate_parents &&
|
||||
ostree_mutable_tree_get_metadata_checksum (mtree) == NULL)
|
||||
{
|
||||
glnx_unref_object GFileInfo *fi = g_file_info_new ();
|
||||
g_file_info_set_attribute_uint32 (fi, "unix::uid", 0);
|
||||
g_file_info_set_attribute_uint32 (fi, "unix::gid", 0);
|
||||
g_file_info_set_attribute_uint32 (fi, "unix::mode", DEFAULT_DIRMODE);
|
||||
/* _ostree_stbuf_to_gfileinfo() only looks at these fields,
|
||||
* but we use it to ensure it sets all of the relevant GFileInfo
|
||||
* properties.
|
||||
*/
|
||||
struct stat stbuf = { .st_mode = DEFAULT_DIRMODE,
|
||||
.st_uid = 0,
|
||||
.st_gid = 0 };
|
||||
g_autoptr(GFileInfo) fi = _ostree_stbuf_to_gfileinfo (&stbuf);
|
||||
|
||||
g_autoptr(GFileInfo) mfi = NULL;
|
||||
(void)_ostree_repo_commit_modifier_apply (self, modifier, "/",
|
||||
|
Loading…
x
Reference in New Issue
Block a user