]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
repart: Apply verity-sig max size based on partition type
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Sun, 1 Jun 2025 18:24:47 +0000 (20:24 +0200)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Sun, 1 Jun 2025 19:19:53 +0000 (21:19 +0200)
We already do this for partition_min_size(), let's do it for
partition_max_size() as well. This makes sure repart doesn't accidentally
try to grow verity sig partitions to larger sizes than the hardcoded
max size in systemd.

src/repart/repart.c
src/shared/gpt.h

index f3cc69ef1132c0289d374b643047717f12eadcd7..ab212b4f42b9b9e68de9cf8fe44486343aaf8f59 100644 (file)
@@ -921,7 +921,7 @@ static uint64_t partition_min_size(const Context *context, const Partition *p) {
                 return p->current_size;
         }
 
-        if (IN_SET(p->type.designator, PARTITION_ROOT_VERITY_SIG, PARTITION_USR_VERITY_SIG))
+        if (partition_designator_is_verity_sig(p->type.designator))
                 return VERITY_SIG_SIZE;
 
         sz = p->current_size != UINT64_MAX ? p->current_size : HARD_MIN_SIZE;
@@ -967,7 +967,7 @@ static uint64_t partition_max_size(const Context *context, const Partition *p) {
                 return p->current_size;
         }
 
-        if (p->verity == VERITY_SIG)
+        if (partition_designator_is_verity_sig(p->type.designator))
                 return VERITY_SIG_SIZE;
 
         override_max = p->suppressing ? MIN(p->size_max, p->suppressing->size_max) : p->size_max;
index f81c377c68375cd589ba812bd29a01876a6806cd..9e5ace35a45c32d9d806db96c4d1cecd0e269021 100644 (file)
@@ -31,6 +31,10 @@ typedef enum PartitionDesignator {
 
 bool partition_designator_is_versioned(PartitionDesignator d) _const_;
 
+static inline bool partition_designator_is_verity_sig(PartitionDesignator d) {
+        return IN_SET(d, PARTITION_ROOT_VERITY_SIG, PARTITION_USR_VERITY_SIG);
+}
+
 PartitionDesignator partition_verity_of(PartitionDesignator p) _const_;
 PartitionDesignator partition_verity_sig_of(PartitionDesignator p) _const_;
 PartitionDesignator partition_verity_to_data(PartitionDesignator d) _const_;