From 7499d9f24547d417cda3e07546c564d8967b6d87 Mon Sep 17 00:00:00 2001 From: Ondrej Kozina Date: Wed, 19 Feb 2020 11:12:02 +0100 Subject: [PATCH] Return -EINVAL when validation fails. LUKS2_hdr_validate() returns positive integer on error. Replace returned value with negative errno instead so that failed upconversion stops sooner. It failed anyway but debug messages were misleading. --- lib/luks2/luks2_luks1_convert.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/luks2/luks2_luks1_convert.c b/lib/luks2/luks2_luks1_convert.c index cb4f48ec..ca47e5d2 100644 --- a/lib/luks2/luks2_luks1_convert.c +++ b/lib/luks2/luks2_luks1_convert.c @@ -579,9 +579,10 @@ int LUKS2_luks1_to_luks2(struct crypt_device *cd, struct luks_phdr *hdr1, struct } /* check future LUKS2 metadata before moving keyslots area */ - r = LUKS2_hdr_validate(cd, hdr2->jobj, hdr2->hdr_size - LUKS2_HDR_BIN_LEN); - if (r) + if (LUKS2_hdr_validate(cd, hdr2->jobj, hdr2->hdr_size - LUKS2_HDR_BIN_LEN)) { + r = -EINVAL; goto out; + } if ((r = luks_header_in_use(cd))) { if (r > 0)