From 4ab51780c35ceb927c864c85b34cddb2f02cd72e Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 9 Sep 2021 11:12:23 +0200 Subject: [PATCH] dissect-image: mangle discovered /usr/ partition data, even if we found a root partition Previously, we'd clean up discovered /usr/ partition data only if we did not find a root partition. Given that we allow combinations of root and /usr partitions clean things up in both cases however. --- src/shared/dissect-image.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/shared/dissect-image.c b/src/shared/dissect-image.c index 480e4a22847..00ac8c69407 100644 --- a/src/shared/dissect-image.c +++ b/src/shared/dissect-image.c @@ -1317,7 +1317,7 @@ int dissect_image( } else if (m->partitions[PARTITION_ROOT_SECONDARY_VERITY].found) return -EADDRNOTAVAIL; /* as above */ - else if (m->partitions[PARTITION_USR].found) { + if (m->partitions[PARTITION_USR].found) { /* Invalidate secondary arch /usr/ if we found the primary arch */ m->partitions[PARTITION_USR_SECONDARY].found = false; @@ -1337,8 +1337,10 @@ int dissect_image( } else if (m->partitions[PARTITION_USR_SECONDARY_VERITY].found) return -EADDRNOTAVAIL; /* as above */ - else if ((flags & DISSECT_IMAGE_GENERIC_ROOT) && - (!verity || !verity->root_hash)) { + if (!m->partitions[PARTITION_ROOT].found && + !m->partitions[PARTITION_USR].found && + (flags & DISSECT_IMAGE_GENERIC_ROOT) && + (!verity || !verity->root_hash)) { /* OK, we found nothing usable, then check if there's a single generic one distro, and use * that. If the root hash was set however, then we won't fall back to a generic node, because -- 2.47.3