From: Lennart Poettering Date: Thu, 9 Sep 2021 09:12:23 +0000 (+0200) Subject: dissect-image: mangle discovered /usr/ partition data, even if we found a root partition X-Git-Tag: v250-rc1~701^2~6 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4ab51780c35ceb927c864c85b34cddb2f02cd72e;p=thirdparty%2Fsystemd.git 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. --- 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