From 75ece9b697d1e3b66a75f2d423e51f369bc387f1 Mon Sep 17 00:00:00 2001 From: MX <10697207+xMasterX@users.noreply.github.com> Date: Wed, 1 May 2024 16:59:37 +0300 Subject: [PATCH] add temp fix since no proper fix exist at the moment --- lib/nfc/helpers/iso14443_4_layer.c | 6 +++++- lib/toolbox/bit_buffer.c | 1 - 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/nfc/helpers/iso14443_4_layer.c b/lib/nfc/helpers/iso14443_4_layer.c index d53aef64f..0e742ce95 100644 --- a/lib/nfc/helpers/iso14443_4_layer.c +++ b/lib/nfc/helpers/iso14443_4_layer.c @@ -66,9 +66,13 @@ bool iso14443_4_layer_decode_block( bool ret = false; + // TODO: Fix properly! this is a very big kostyl na velosipede + // (bit_buffer_copy_right are called to copy bigger buffer into smaller buffer causing crash on furi check) issue comes iso14443_4a_poller_send_block at line 109 + if(bit_buffer_get_size_bytes(output_data) < bit_buffer_get_size_bytes(output_data) - 1) + return ret; + do { if(!bit_buffer_starts_with_byte(block_data, instance->pcb_prev)) break; - // TODO: Fix crash bit_buffer_copy_right(output_data, block_data, 1); ret = true; } while(false); diff --git a/lib/toolbox/bit_buffer.c b/lib/toolbox/bit_buffer.c index d8f62ef4c..85a52e79d 100644 --- a/lib/toolbox/bit_buffer.c +++ b/lib/toolbox/bit_buffer.c @@ -58,7 +58,6 @@ void bit_buffer_copy_right(BitBuffer* buf, const BitBuffer* other, size_t start_ furi_check(buf); furi_check(other); furi_check(bit_buffer_get_size_bytes(other) > start_index); - // TODO: Fix crash furi_check(buf->capacity_bytes >= bit_buffer_get_size_bytes(other) - start_index); memcpy(buf->data, other->data + start_index, bit_buffer_get_size_bytes(other) - start_index);