Prevent packet body overflow

This commit is contained in:
XANTRONIX Development 2016-06-06 19:16:05 -05:00
parent 3fa06b40d7
commit 33bf45149e

View file

@ -22,7 +22,7 @@ ISR(SPI_STC_vect) {
switch (i) { switch (i) {
case 0: { case 0: {
if (in == TABBY_PRINTER_SYNC_1) { if (in == TABBY_PRINTER_SYNC_1) {
header.data[0] = in; header.preamble[0] = in;
i++; i++;
b = 0; b = 0;
@ -33,7 +33,7 @@ ISR(SPI_STC_vect) {
case 1: { case 1: {
if (in == TABBY_PRINTER_SYNC_2) { if (in == TABBY_PRINTER_SYNC_2) {
header.data[1] = in; header.preamble[1] = in;
i++; i++;
} else { } else {
i = 0; i = 0;
@ -67,6 +67,10 @@ ISR(SPI_STC_vect) {
header.size |= in << 8; header.size |= in << 8;
i++; i++;
if (header.size > TABBY_PRINTER_PACKET_MAX_SIZE) {
i = 0;
}
break; break;
} }
@ -79,6 +83,8 @@ ISR(SPI_STC_vect) {
out = TABBY_PRINTER_DEVICE_ID; out = TABBY_PRINTER_DEVICE_ID;
} else if (b == header.size + 2) { } else if (b == header.size + 2) {
b++; b++;
out = TABBY_PRINTER_OK;
} else if (b == header.size + 3) { } else if (b == header.size + 3) {
i = 0; i = 0;
} }