From 3bd590c18c183d7caebed2716dfb5f38897b47cc Mon Sep 17 00:00:00 2001 From: Abhishek Malik Date: Mon, 19 Dec 2016 18:13:56 -0800 Subject: [PATCH] Firmata: I2C read bytes data array size mismatch fix Signed-off-by: Abhishek Malik Signed-off-by: Brendan Le Foll --- src/firmata/firmata_mraa.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/firmata/firmata_mraa.c b/src/firmata/firmata_mraa.c index 8e4e35f..c5647e6 100644 --- a/src/firmata/firmata_mraa.c +++ b/src/firmata/firmata_mraa.c @@ -231,9 +231,16 @@ mraa_firmata_i2c_read_word_data(mraa_i2c_context dev, uint8_t command) static int mraa_firmata_i2c_read_bytes_data(mraa_i2c_context dev, uint8_t command, uint8_t* data, int length) { + uint32_t *local_storage = (uint32_t*) calloc(length, sizeof(int)); if (mraa_firmata_send_i2c_read_reg_req(dev, command, length) == MRAA_SUCCESS) { if (mraa_firmata_i2c_wait(dev->addr, command) == MRAA_SUCCESS) { - memcpy(data, &firmata_dev->i2cmsg[dev->addr][command], sizeof(int)*length); + memcpy(local_storage, &firmata_dev->i2cmsg[dev->addr][command], sizeof(int)*length); + int x = 0; + for(; x