diff --git a/src/repart/repart.c b/src/repart/repart.c index fe0e83c6c8..4640f18b3b 100644 --- a/src/repart/repart.c +++ b/src/repart/repart.c @@ -2700,7 +2700,9 @@ static int config_parse_encrypted_volume( return 0; } - if (!filename_is_valid(volume)) { + if (isempty(volume)) + volume = mfree(volume); + else if (!filename_is_valid(volume)) { log_syntax(unit, LOG_WARNING, filename, line, 0, "Volume name %s is not valid, ignoring", volume); return 0; diff --git a/test/units/TEST-58-REPART.sh b/test/units/TEST-58-REPART.sh index 863023454e..d6b5282e05 100755 --- a/test/units/TEST-58-REPART.sh +++ b/test/units/TEST-58-REPART.sh @@ -2564,6 +2564,40 @@ EOF losetup -d "$loop" } +testcase_encrypted_volume_empty_name() { + local defs imgs + + defs="$(mktemp --directory "/tmp/test-repart.defs.XXXXXXXXXX")" + imgs="$(mktemp --directory "/var/tmp/test-repart.imgs.XXXXXXXXXX")" + # shellcheck disable=SC2064 + trap "rm -rf '$defs' '$imgs'" RETURN + chmod 0755 "$defs" + + echo "*** testcase for EncryptedVolume= with empty volume name ***" + + tee "$defs/root.conf" <