From: Lennart Poettering Date: Thu, 9 Jan 2025 10:17:40 +0000 (+0100) Subject: repart: modernize set_gpt_flags() X-Git-Tag: v258-rc1~1645 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a71731bd2ecc5fb5709ffb8caf42c0b40396c172;p=thirdparty%2Fsystemd.git repart: modernize set_gpt_flags() --- diff --git a/src/repart/repart.c b/src/repart/repart.c index bed4fd92bc2..2be7b072468 100644 --- a/src/repart/repart.c +++ b/src/repart/repart.c @@ -6310,20 +6310,15 @@ static int context_acquire_partition_uuids_and_labels(Context *context) { static int set_gpt_flags(struct fdisk_partition *q, uint64_t flags) { _cleanup_free_ char *a = NULL; + int r; - for (unsigned i = 0; i < sizeof(flags) * 8; i++) { - uint64_t bit = UINT64_C(1) << i; - char buf[DECIMAL_STR_MAX(unsigned)+1]; - - if (!FLAGS_SET(flags, bit)) - continue; - - xsprintf(buf, "%u", i); - if (!strextend_with_separator(&a, ",", buf)) - return -ENOMEM; + BIT_FOREACH(i, flags) { + r = strextendf_with_separator(&a, ",", "%i", i); + if (r < 0) + return r; } - return fdisk_partition_set_attrs(q, a); + return fdisk_partition_set_attrs(q, strempty(a)); } static uint64_t partition_merge_flags(Partition *p) {