From f36a940ed04eb3fd2f68565ebbe46e17a9d00f53 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Fri, 18 Feb 2022 10:24:13 -0500 Subject: [PATCH] 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. --- src/libostree/ostree-mutable-tree.c | 3 +++ 1 file changed, 3 insertions(+) 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)