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) {