[Concept,13/14] luks: Check for out-of-memory with Argon2

Message ID 20251116212334.1603490-14-simon.glass@canonical.com
State New
Headers
Series luks: Integrate support for a TKey |

Commit Message

Simon Glass Nov. 16, 2025, 9:23 p.m. UTC
  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 <simon.glass@canonical.com>
---

 drivers/block/luks2.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
  

Patch

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");