Commit 629457a1 authored by Corey Minyard's avatar Corey Minyard Committed by Peter Maydell
Browse files

i2c: Add a length check to the SMBus write handling



Avoid an overflow.

Signed-off-by: default avatarCorey Minyard <cminyard@mvista.com>
Reviewed-by: default avatarPeter Maydell <peter.maydell@linaro.org>
Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
Cc: QEMU Stable <qemu-stable@nongnu.org>
Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
parent 4750e1a8
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -193,7 +193,11 @@ static int smbus_i2c_send(I2CSlave *s, uint8_t data)
    switch (dev->mode) {
    case SMBUS_WRITE_DATA:
        DPRINTF("Write data %02x\n", data);
        if (dev->data_len >= sizeof(dev->data_buf)) {
            BADF("Too many bytes sent\n");
        } else {
            dev->data_buf[dev->data_len++] = data;
        }
        break;
    default:
        BADF("Unexpected write in state %d\n", dev->mode);