mraa.c: be more defensive and replace strcmp() with strncmp()
Closes #731. Signed-off-by: Alex Tereschenko <alext.mkrs@gmail.com>
This commit is contained in:
19
src/mraa.c
19
src/mraa.c
@@ -833,7 +833,8 @@ mraa_gpio_lookup(const char* pin_name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < plat->gpio_count; i++) {
|
for (i = 0; i < plat->gpio_count; i++) {
|
||||||
if (plat->pins[i].name != NULL && strcmp(pin_name, plat->pins[i].name) == 0) {
|
if (plat->pins[i].name != NULL &&
|
||||||
|
strncmp(pin_name, plat->pins[i].name, strlen(plat->pins[i].name) + 1) == 0) {
|
||||||
return plat->pins[i].gpio.pinmap;
|
return plat->pins[i].gpio.pinmap;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -854,7 +855,8 @@ mraa_i2c_lookup(const char* i2c_name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < plat->i2c_bus_count; i++) {
|
for (i = 0; i < plat->i2c_bus_count; i++) {
|
||||||
if (plat->i2c_bus[i].name != NULL && strcmp(i2c_name, plat->i2c_bus[i].name) == 0) {
|
if (plat->i2c_bus[i].name != NULL &&
|
||||||
|
strncmp(i2c_name, plat->i2c_bus[i].name, strlen(plat->i2c_bus[i].name) + 1) == 0) {
|
||||||
return plat->i2c_bus[i].bus_id;
|
return plat->i2c_bus[i].bus_id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -875,7 +877,8 @@ mraa_spi_lookup(const char* spi_name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < plat->spi_bus_count; i++) {
|
for (i = 0; i < plat->spi_bus_count; i++) {
|
||||||
if (plat->spi_bus[i].name != NULL && strcmp(spi_name, plat->spi_bus[i].name) == 0) {
|
if (plat->spi_bus[i].name != NULL &&
|
||||||
|
strncmp(spi_name, plat->spi_bus[i].name, strlen(plat->spi_bus[i].name) + 1) == 0) {
|
||||||
return plat->spi_bus[i].bus_id;
|
return plat->spi_bus[i].bus_id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -896,7 +899,8 @@ mraa_pwm_lookup(const char* pwm_name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < plat->pwm_dev_count; i++) {
|
for (i = 0; i < plat->pwm_dev_count; i++) {
|
||||||
if (plat->pwm_dev[i].name != NULL && strcmp(pwm_name, plat->pwm_dev[i].name) == 0) {
|
if (plat->pwm_dev[i].name != NULL &&
|
||||||
|
strncmp(pwm_name, plat->pwm_dev[i].name, strlen(plat->pwm_dev[i].name) + 1) == 0) {
|
||||||
return plat->pwm_dev[i].index;
|
return plat->pwm_dev[i].index;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -917,7 +921,8 @@ mraa_uart_lookup(const char* uart_name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < plat->uart_dev_count; i++) {
|
for (i = 0; i < plat->uart_dev_count; i++) {
|
||||||
if (plat->uart_dev[i].name != NULL && strcmp(uart_name, plat->uart_dev[i].name) == 0) {
|
if (plat->uart_dev[i].name != NULL &&
|
||||||
|
strncmp(uart_name, plat->uart_dev[i].name, strlen(plat->uart_dev[i].name) + 1) == 0) {
|
||||||
return plat->uart_dev[i].index;
|
return plat->uart_dev[i].index;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1311,11 +1316,11 @@ mraa_add_from_lockfile(const char* imraa_lock_file)
|
|||||||
for (i = 0; i < subplat_num; i++) {
|
for (i = 0; i < subplat_num; i++) {
|
||||||
struct json_object *ioobj = json_object_array_get_idx(ioarray, i);
|
struct json_object *ioobj = json_object_array_get_idx(ioarray, i);
|
||||||
json_object_object_foreach(ioobj, key, val) {
|
json_object_object_foreach(ioobj, key, val) {
|
||||||
if (strcmp(key, "id") == 0) {
|
if (strncmp(key, "id", strlen("id") + 1) == 0) {
|
||||||
if (mraa_atoi(json_object_get_string(val), &id) != MRAA_SUCCESS) {
|
if (mraa_atoi(json_object_get_string(val), &id) != MRAA_SUCCESS) {
|
||||||
id = -1;
|
id = -1;
|
||||||
}
|
}
|
||||||
} else if (strcmp(key, "uart") == 0) {
|
} else if (strncmp(key, "uart", strlen("uart") + 1) == 0) {
|
||||||
uartdev = json_object_get_string(val);
|
uartdev = json_object_get_string(val);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user