From a2180569053e0cff86068fc839036f6ca7340a3a Mon Sep 17 00:00:00 2001 From: Brendan Le Foll Date: Mon, 28 Mar 2016 04:16:39 +0100 Subject: [PATCH] i2c.c: Fix return value of mraa_i2c_write in error cases ioctl() returns -1 on error, or otherwise a value certainly not within the mraa_result_t enum. Fixes #480. Signed-off-by: Brendan Le Foll --- src/i2c/i2c.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/i2c/i2c.c b/src/i2c/i2c.c index e196ab7..9247a44 100644 --- a/src/i2c/i2c.c +++ b/src/i2c/i2c.c @@ -298,7 +298,10 @@ mraa_i2c_write(mraa_i2c_context dev, const uint8_t* data, int length) } d.block[0] = length; - return mraa_i2c_smbus_access(dev->fh, I2C_SMBUS_WRITE, command, I2C_SMBUS_I2C_BLOCK_DATA, &d); + if (mraa_i2c_smbus_access(dev->fh, I2C_SMBUS_WRITE, command, I2C_SMBUS_I2C_BLOCK_DATA, &d) < 0) { + return MRAA_ERROR_INVALID_HANDLE; + } + return MRAA_SUCCESS; } mraa_result_t