From 8d033bde284a46fc25164e0c777b94c3b80fe115 Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Sun, 16 Nov 2025 10:51:41 -0700 Subject: [PATCH] luks: Check for out-of-memory with Argon2 This algorithm can use a lot of memory, so add a check for this condition and return the correct error. Signed-off-by: Simon Glass --- drivers/block/luks2.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/block/luks2.c b/drivers/block/luks2.c index e3f3ac28c34..db5f13badd9 100644 --- a/drivers/block/luks2.c +++ b/drivers/block/luks2.c @@ -676,7 +676,10 @@ static int try_keyslot_argon2(struct udevice *blk, struct disk_partition *pinfo, ks->kdf.salt_len, derived_key, ks->area.key_size); if (ret) { - log_err("Argon2id failed: %s\n", argon2_error_message(ret)); + log_err("Argon2id failed: %s (code=%d)\n", + argon2_error_message(ret), ret); + if (ret == ARGON2_MEMORY_ALLOCATION_ERROR) + return -ENOMEM; return -EPROTO; } log_debug("LUKS2 Argon2: key derivation succeeded\n");