summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/partition/repart.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/partition/repart.c b/src/partition/repart.c
index 351b3d1b5e..0db8d4aba1 100644
--- a/src/partition/repart.c
+++ b/src/partition/repart.c
@@ -963,6 +963,9 @@ static int config_parse_label(
assert(rvalue);
assert(label);
+ /* Nota bene: the empty label is a totally valid one. Let's hence not follow our usual rule of
+ * assigning the empty string to reset to default here, but really accept it as label to set. */
+
r = specifier_printf(rvalue, specifier_table, NULL, &resolved);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r,
@@ -1873,7 +1876,7 @@ static int context_dump_partitions(Context *context, const char *node) {
r = table_add_many(
t,
TABLE_STRING, gpt_partition_type_uuid_to_string_harder(p->type_uuid, uuid_buffer),
- TABLE_STRING, label ?: "-", TABLE_SET_COLOR, label ? NULL : ansi_grey(),
+ TABLE_STRING, empty_to_null(label) ?: "-", TABLE_SET_COLOR, empty_to_null(label) ? NULL : ansi_grey(),
TABLE_UUID, sd_id128_is_null(p->new_uuid) ? p->current_uuid : p->new_uuid,
TABLE_STRING, p->definition_path ? basename(p->definition_path) : "-", TABLE_SET_COLOR, p->definition_path ? NULL : ansi_grey(),
TABLE_STRING, partname ?: "-", TABLE_SET_COLOR, partname ? NULL : ansi_highlight(),
@@ -2444,7 +2447,7 @@ static int partition_encrypt(
volume_key,
volume_key_size,
&(struct crypt_params_luks2) {
- .label = p->new_label,
+ .label = strempty(p->new_label),
.sector_size = 512U,
});
if (r < 0)
@@ -2838,7 +2841,7 @@ static int context_mkfs(Context *context) {
if (r < 0)
return r;
- r = make_filesystem(fsdev, p->format, p->new_label, fs_uuid, arg_discard);
+ r = make_filesystem(fsdev, p->format, strempty(p->new_label), fs_uuid, arg_discard);
if (r < 0) {
encrypted_dev_fd = safe_close(encrypted_dev_fd);
(void) deactivate_luks(cd, encrypted);
@@ -3025,7 +3028,7 @@ static int context_acquire_partition_uuids_and_labels(Context *context) {
if (p->current_label) {
free(p->new_label);
- p->new_label = strdup(p->current_label);
+ p->new_label = strdup(strempty(p->current_label));
if (!p->new_label)
return log_oom();
}
@@ -3108,9 +3111,7 @@ static int context_mangle_partitions(Context *context) {
}
if (!streq_ptr(p->new_label, p->current_label)) {
- assert(!isempty(p->new_label));
-
- r = fdisk_partition_set_name(p->current_partition, p->new_label);
+ r = fdisk_partition_set_name(p->current_partition, strempty(p->new_label));
if (r < 0)
return log_error_errno(r, "Failed to set partition label: %m");
@@ -3134,7 +3135,7 @@ static int context_mangle_partitions(Context *context) {
assert(p->offset % 512 == 0);
assert(p->new_size % 512 == 0);
assert(!sd_id128_is_null(p->new_uuid));
- assert(!isempty(p->new_label));
+ assert(p->new_label);
t = fdisk_new_parttype();
if (!t)
@@ -3172,7 +3173,7 @@ static int context_mangle_partitions(Context *context) {
if (r < 0)
return log_error_errno(r, "Failed to set partition UUID: %m");
- r = fdisk_partition_set_name(q, p->new_label);
+ r = fdisk_partition_set_name(q, strempty(p->new_label));
if (r < 0)
return log_error_errno(r, "Failed to set partition label: %m");