From c62b9e0480372c4c42986df1450f139e0ebb6a55 Mon Sep 17 00:00:00 2001 From: iceman1001 Date: Tue, 24 Mar 2026 14:21:09 +0700 Subject: [PATCH] add guard for size_t underflow --- armsrc/desfire_crypto.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/armsrc/desfire_crypto.c b/armsrc/desfire_crypto.c index b27d19595..afe66345e 100644 --- a/armsrc/desfire_crypto.c +++ b/armsrc/desfire_crypto.c @@ -600,6 +600,15 @@ void *mifare_cryto_postprocess_data(desfiretag_t tag, void *data, size_t *nbytes if ((communication_settings & MAC_VERIFY) == MAC_VERIFY) { + if (*nbytes < key_macing_length(key)) { + *nbytes = -1; + res = NULL; +#ifdef WITH_DEBUG + Dbprintf("No room for MAC!"); +#endif + break; + } + *nbytes -= key_macing_length(key); if (*nbytes == 0) {