From a44532dcb9a05fa29eaed0728cd0543750e47081 Mon Sep 17 00:00:00 2001 From: Michael Gernoth Date: Mon, 23 Aug 2010 00:59:13 +0200 Subject: [PATCH] make sure i2c rxbuf does not overrun --- bmc/i2c.c | 5 +++++ 1 file changed, 5 insertions(+) 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; -- 2.39.5