diff --git a/src/shared/dissect-image.c b/src/shared/dissect-image.c index fcc158665d4..360fc4a9391 100644 --- a/src/shared/dissect-image.c +++ b/src/shared/dissect-image.c @@ -184,6 +184,9 @@ static int dissected_image_new(const char *path, DissectedImage **ret) { .image_name = TAKE_PTR(name), }; + for (PartitionDesignator i = 0; i < _PARTITION_DESIGNATOR_MAX; i++) + m->partitions[i] = DISSECTED_PARTITION_NULL; + *ret = TAKE_PTR(m); return 0; } @@ -199,10 +202,7 @@ static void dissected_partition_done(DissectedPartition *p) { free(p->decrypted_node); free(p->mount_options); - *p = (DissectedPartition) { - .partno = -1, - .architecture = _ARCHITECTURE_INVALID, - }; + *p = DISSECTED_PARTITION_NULL; } #if HAVE_BLKID diff --git a/src/shared/dissect-image.h b/src/shared/dissect-image.h index fe478bde493..aee8f1c3153 100644 --- a/src/shared/dissect-image.h +++ b/src/shared/dissect-image.h @@ -33,6 +33,12 @@ struct DissectedPartition { uint64_t offset; }; +#define DISSECTED_PARTITION_NULL \ + ((DissectedPartition) { \ + .partno = -1, \ + .architecture = _ARCHITECTURE_INVALID, \ + }) + typedef enum PartitionDesignator { PARTITION_ROOT, PARTITION_ROOT_SECONDARY, /* Secondary architecture */