From: Colin Walters Date: Fri, 18 Feb 2022 15:24:13 +0000 (-0500) Subject: mtree: Load traversed subdirs when creating parents X-Git-Tag: archive/raspbian/2022.2-3+rpi1^2~15^2^2~4^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=f36a940ed04eb3fd2f68565ebbe46e17a9d00f53;p=ostree.git mtree: Load traversed subdirs when creating parents I'm working on enhancing the ostree-rs-ext test suite and I hit a bug where walking a mtree and creating a parent would fail to load lazy intermediate directories, e.g.: / -> usr -> bin If we walked we'd load `/` but keep `usr` lazy, and then invalidation would crash because it wasn't loaded. If we're going to mutate a subdir, we need to have all the parents loaded. I know this is missing tests, but...it's a bit tedious to do with the existing C tests. Eventually soon we'll execute on merging all 3 repos, and better share test suites. --- diff --git a/src/libostree/ostree-mutable-tree.c b/src/libostree/ostree-mutable-tree.c index e0e73f37..4b3460e3 100644 --- a/src/libostree/ostree-mutable-tree.c +++ b/src/libostree/ostree-mutable-tree.c @@ -477,6 +477,9 @@ ostree_mutable_tree_ensure_parent_dirs (OstreeMutableTree *self, } subdir = next; + g_assert (subdir); + if (!_ostree_mutable_tree_make_whole (subdir, NULL, error)) + return FALSE; } if (out_parent)