aboutsummaryrefslogtreecommitdiffstats
path: root/libmaple/i2c.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmaple/i2c.c')
-rw-r--r--libmaple/i2c.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libmaple/i2c.c b/libmaple/i2c.c
index 6c609d9..bbbf123 100644
--- a/libmaple/i2c.c
+++ b/libmaple/i2c.c
@@ -458,6 +458,10 @@ void _i2c_irq_handler(i2c_dev *dev) {
if (sr1 & I2C_SR1_RXNE) {
if (dev->config_flags & I2C_SLAVE_USE_RX_BUFFER) {
/* Fill the buffer with the contents of the data register */
+ /* These is potential for buffer overflow here, so we should
+ * really store the size of the array. This is expensive in
+ * the ISR so left out for now. We must trust the implementor!
+ */
dev->i2c_slave_msg->data[dev->i2c_slave_msg->xferred++] = dev->regs->DR;
dev->i2c_slave_msg->length++;
}