From: Michael Gernoth Date: Sun, 22 Aug 2010 22:59:13 +0000 (+0200) Subject: make sure i2c rxbuf does not overrun X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/rsbs2/commitdiff_plain/a44532dcb9a05fa29eaed0728cd0543750e47081 make sure i2c rxbuf does not overrun --- diff --git a/bmc/i2c.c b/bmc/i2c.c index f081991..c5f587b 100644 --- a/bmc/i2c.c +++ b/bmc/i2c.c @@ -87,6 +87,11 @@ ISR (TWI_vect, ISR_BLOCK) #ifdef DEBUG printf("I2C: Data received: 0x%02x\n", TWDR); #endif + if (i2c_pos >= sizeof(i2c_databuf)) { + TWCR_RESET; + i2c_pos = 0x00; + break; + } i2c_databuf[i2c_pos] = TWDR; i2c_pos++; TWCR_ACK;