lib/commit: disallow writing content in 'bare-split-xattrs' mode
This prevents writing content into 'bare-split-xattrs` repository, while carving some space for experimenting via a temporary `OSTREE_EXP_WRITE_BARE_SPLIT_XATTRS` environment flag.
This commit is contained in:
parent
14a6e6d8d0
commit
7e79b82ff8
|
|
@ -920,6 +920,9 @@ write_content_object (OstreeRepo *self,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
OstreeRepoMode repo_mode = ostree_repo_get_mode (self);
|
OstreeRepoMode repo_mode = ostree_repo_get_mode (self);
|
||||||
|
if (repo_mode == OSTREE_REPO_MODE_BARE_SPLIT_XATTRS &&
|
||||||
|
g_getenv ("OSTREE_EXP_WRITE_BARE_SPLIT_XATTRS") == NULL)
|
||||||
|
return glnx_throw (error, "Not allowed due to repo mode");
|
||||||
|
|
||||||
GInputStream *file_input; /* Unowned alias */
|
GInputStream *file_input; /* Unowned alias */
|
||||||
g_autoptr(GInputStream) file_input_owned = NULL; /* We need a temporary for bare-user symlinks */
|
g_autoptr(GInputStream) file_input_owned = NULL; /* We need a temporary for bare-user symlinks */
|
||||||
|
|
|
||||||
|
|
@ -22,4 +22,26 @@ ${OSTREE} fsck --all
|
||||||
tap_ok "repo fsck"
|
tap_ok "repo fsck"
|
||||||
rm -rf -- repo
|
rm -rf -- repo
|
||||||
|
|
||||||
|
cd ${test_tmpdir}
|
||||||
|
mkdir -p "${test_tmpdir}/files"
|
||||||
|
touch files/foo
|
||||||
|
${OSTREE} init --mode "${mode}"
|
||||||
|
if ${OSTREE} commit --orphan -m "not implemented" files; then
|
||||||
|
assert_not_reached "commit to bare-split-xattrs should have failed"
|
||||||
|
fi
|
||||||
|
${OSTREE} fsck --all
|
||||||
|
tap_ok "commit not implemented"
|
||||||
|
rm -rf -- repo files
|
||||||
|
|
||||||
|
cd ${test_tmpdir}
|
||||||
|
mkdir -p "${test_tmpdir}/files"
|
||||||
|
touch files/foo
|
||||||
|
${OSTREE} init --mode "${mode}"
|
||||||
|
OSTREE_EXP_WRITE_BARE_SPLIT_XATTRS=true ${OSTREE} commit --orphan -m "experimental" files
|
||||||
|
if ${OSTREE} fsck --all; then
|
||||||
|
assert_not_reached "fsck should have failed"
|
||||||
|
fi
|
||||||
|
tap_ok "commit exp override"
|
||||||
|
rm -rf -- repo files
|
||||||
|
|
||||||
tap_end
|
tap_end
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue