Skip to content

Commit 4525f38

Browse files
committed
Clamp ISO-DEP re-receive length to negotiated frame size
1 parent 7bc89de commit 4525f38

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

src/nfc/isoDEP/isoDEP.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ bool IsoDEP::transceiveINF(uint8_t* rx_inf, uint16_t& rx_inf_len, const uint8_t*
246246
const uint32_t wtx_timeout = mul_clamp_u32(pol.fwt_ms, (uint32_t)wtxm, pol.wtx_max_ms);
247247

248248
// Receive next frame after WTX-ACK (do NOT resend I-Block)
249-
rlen = sizeof(rx_buf);
249+
rlen = max_frame_size_rx;
250250
if (!_layer.transceive(rx_buf, rlen, s_ack, sp, wtx_timeout)) {
251251
if (retries++ < pol.max_retries) {
252252
break; // resend I-Block
@@ -333,7 +333,7 @@ bool IsoDEP::transceiveINF(uint8_t* rx_inf, uint16_t& rx_inf_len, const uint8_t*
333333
if (_cfg.use_cid) r_ack[rp++] = (uint8_t)(_cfg.cid & 0x0F);
334334

335335
M5_LIB_LOGV("isoDEP chain TX R-ACK bn=%u (collected=%u)", ack_bn, rx_written);
336-
uint16_t rlen2 = sizeof(rx_buf);
336+
uint16_t rlen2 = max_frame_size_rx;
337337
if (!_layer.transceive(rx_buf, rlen2, r_ack, rp, pol.fwt_ms)) {
338338
M5_LIB_LOGE("isoDEP chain RX failed, rlen=%u", rlen2);
339339
PRINT_ERROR(">>>>ERROR 12");
@@ -369,7 +369,7 @@ bool IsoDEP::transceiveINF(uint8_t* rx_inf, uint16_t& rx_inf_len, const uint8_t*
369369

370370
const uint32_t wtx_timeout = mul_clamp_u32(pol.fwt_ms, (uint32_t)wtxm, pol.wtx_max_ms);
371371

372-
rlen2 = sizeof(rx_buf);
372+
rlen2 = max_frame_size_rx;
373373
if (!_layer.transceive(rx_buf, rlen2, s_ack, sp, wtx_timeout)) {
374374
PRINT_ERROR(">>>>ERROR 14");
375375
return false;
@@ -382,7 +382,7 @@ bool IsoDEP::transceiveINF(uint8_t* rx_inf, uint16_t& rx_inf_len, const uint8_t*
382382
if (r_is_nak(pcb2)) return false;
383383

384384
// ACK: receive again
385-
rlen2 = sizeof(rx_buf);
385+
rlen2 = max_frame_size_rx;
386386
if (!_layer.receive(rx_buf, rlen2, pol.fwt_ms)) {
387387
PRINT_ERROR(">>>>ERROR 15");
388388
return false;

0 commit comments

Comments
 (0)