From 2a346a2e08b95cb901c36b044b847ae86a316938 Mon Sep 17 00:00:00 2001 From: Nick Brook Date: Fri, 26 May 2023 16:42:42 +0100 Subject: [PATCH 1/2] When retransmitting frames, MIN should check for tx space --- target/min.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/target/min.c b/target/min.c index 0e4fbc4..5a51d71 100644 --- a/target/min.c +++ b/target/min.c @@ -385,9 +385,15 @@ static void valid_frame_received(struct min_context *self) // Now retransmit the number of frames that were requested for(i = 0; i < num_nacked; i++) { struct transport_frame *retransmit_frame = &self->transport_fifo.frames[idx]; - transport_fifo_send(self, retransmit_frame); - idx++; - idx &= TRANSPORT_FIFO_SIZE_FRAMES_MASK; + if(ON_WIRE_SIZE(retransmit_frame->payload_len) <= min_tx_space(self->port)) { + transport_fifo_send(self, retransmit_frame); + idx++; + idx &= TRANSPORT_FIFO_SIZE_FRAMES_MASK; + } + else { + min_debug_print("Not enough space to retransmit frame\n"); + break; + } } } else { From c5efb1461ac510679e2b92c21526d24fda20d1bb Mon Sep 17 00:00:00 2001 From: Nick Brook Date: Mon, 29 May 2023 14:42:41 +0100 Subject: [PATCH 2/2] Silence warning in Xcode --- target/min.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/min.c b/target/min.c index 5a51d71..2281f45 100644 --- a/target/min.c +++ b/target/min.c @@ -125,7 +125,7 @@ static void on_wire_bytes(struct min_context *self, uint8_t id_control, uint8_t stuffed_tx_byte(self, payload_len, true); - for(i = 0, n = payload_len; n > 0; n--, i++) { + for((void)(i = 0), n = payload_len; n > 0; n--, i++) { stuffed_tx_byte(self, payload_base[payload_offset], true); payload_offset++; payload_offset &= payload_mask;