aboutsummaryrefslogtreecommitdiffstats
path: root/src/i2ccmds.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2018-11-28 20:26:49 -0500
committerKevin O'Connor <kevin@koconnor.net>2018-11-30 11:50:50 -0500
commit3a47d972db205cac77b9bf22a3675e823cc45884 (patch)
tree2d883c7376bb5ea03db0843190701e2fa216d518 /src/i2ccmds.c
parentdb4f0c24cd04ca1b71a87b5fbc0c8bd9f0ffe500 (diff)
downloadkutter-3a47d972db205cac77b9bf22a3675e823cc45884.tar.gz
kutter-3a47d972db205cac77b9bf22a3675e823cc45884.tar.xz
kutter-3a47d972db205cac77b9bf22a3675e823cc45884.zip
i2ccmds: Validate the i2c address
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/i2ccmds.c')
-rw-r--r--src/i2ccmds.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/i2ccmds.c b/src/i2ccmds.c
index 43b05f7e..d880b46f 100644
--- a/src/i2ccmds.c
+++ b/src/i2ccmds.c
@@ -16,9 +16,12 @@ struct i2cdev_s {
void
command_config_i2c(uint32_t *args)
{
+ uint8_t addr = args[3];
+ if (addr & 1)
+ shutdown("Invalid I2C address");
struct i2cdev_s *i2c = oid_alloc(args[0], command_config_i2c
, sizeof(*i2c));
- i2c->i2c_config = i2c_setup(args[1], args[2], args[3]);
+ i2c->i2c_config = i2c_setup(args[1], args[2], addr);
}
DECL_COMMAND(command_config_i2c,
"config_i2c oid=%c bus=%u rate=%u addr=%u");