summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2017-04-18 10:13:45 -0400
committerColin Walters <walters@verbum.org>2017-04-18 17:13:18 -0400
commit53b9b50e3646c2ccea184e0a1b316e466c62e322 (patch)
tree3db1fc7287c3094a3858f8003abc820ec01116b3
parent8742287b117cb8a04d4106d37bfe0e15f9666ef7 (diff)
downloadostree-53b9b50e3646c2ccea184e0a1b316e466c62e322.tar.gz
checkout: Fix bare-user symlink checkouts
Logic error introduced after refactoring; we hoisted the `is_bare_user_symlink` variable to the top, but its computation below. But the `is_bare` symlink depended on it. Closes: https://github.com/ostreedev/ostree/issues/798 Closes: #799 Approved by: jlebon
-rw-r--r--src/libostree/ostree-repo-checkout.c2
-rw-r--r--tests/basic-test.sh1
2 files changed, 2 insertions, 1 deletions
diff --git a/src/libostree/ostree-repo-checkout.c b/src/libostree/ostree-repo-checkout.c
index 392e16fd..71511824 100644
--- a/src/libostree/ostree-repo-checkout.c
+++ b/src/libostree/ostree-repo-checkout.c
@@ -479,7 +479,6 @@ checkout_one_file_at (OstreeRepo *repo,
(current_repo->mode == OSTREE_REPO_MODE_BARE
&& options->mode == OSTREE_REPO_CHECKOUT_MODE_NONE) ||
(repo_is_usermode && options->mode == OSTREE_REPO_CHECKOUT_MODE_USER);
- gboolean is_bare = is_hardlinkable && !is_bare_user_symlink;
gboolean current_can_cache = (options->enable_uncompressed_cache
&& current_repo->enable_uncompressed_cache);
gboolean is_archive_z2_with_cache = (current_repo->mode == OSTREE_REPO_MODE_ARCHIVE_Z2
@@ -491,6 +490,7 @@ checkout_one_file_at (OstreeRepo *repo,
* as well as write_object().
*/
is_bare_user_symlink = (repo_is_usermode && is_symlink);
+ const gboolean is_bare = is_hardlinkable && !is_bare_user_symlink;
/* Verify if no_copy_fallback is set that we can hardlink, with a
* special exception for bare-user symlinks.
diff --git a/tests/basic-test.sh b/tests/basic-test.sh
index 294854bf..f4b2b118 100644
--- a/tests/basic-test.sh
+++ b/tests/basic-test.sh
@@ -44,6 +44,7 @@ validate_checkout_basic() {
assert_has_file baz/cow
assert_file_has_content baz/cow moo
assert_has_file baz/deeper/ohyeah
+ assert_symlink_has_content somelink nosuchfile
)
}