From 33bf45149e8cfeeb474ae55eb346239f4f4fb8aa Mon Sep 17 00:00:00 2001 From: XANTRONIX Development Date: Mon, 6 Jun 2016 19:16:05 -0500 Subject: [PATCH] Prevent packet body overflow --- avr/recv.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/avr/recv.c b/avr/recv.c index 55b6634..7de9035 100644 --- a/avr/recv.c +++ b/avr/recv.c @@ -22,7 +22,7 @@ ISR(SPI_STC_vect) { switch (i) { case 0: { if (in == TABBY_PRINTER_SYNC_1) { - header.data[0] = in; + header.preamble[0] = in; i++; b = 0; @@ -33,7 +33,7 @@ ISR(SPI_STC_vect) { case 1: { if (in == TABBY_PRINTER_SYNC_2) { - header.data[1] = in; + header.preamble[1] = in; i++; } else { i = 0; @@ -67,6 +67,10 @@ ISR(SPI_STC_vect) { header.size |= in << 8; i++; + if (header.size > TABBY_PRINTER_PACKET_MAX_SIZE) { + i = 0; + } + break; } @@ -79,6 +83,8 @@ ISR(SPI_STC_vect) { out = TABBY_PRINTER_DEVICE_ID; } else if (b == header.size + 2) { b++; + + out = TABBY_PRINTER_OK; } else if (b == header.size + 3) { i = 0; }