Incorrect, malicious data in the Sensor section can cause a segmentation fault.
Error message is generated instead of crash after applying this patch.
Change-Id: Ibc387b5594f9453f1fc957ed37ceb09cfa34ded5
Signed-off-by: Mariusz Szafranski <mariuszx.szafranski@intel.com>
for (int i = 0; i < ci->children_num; i++) {
oconfig_item_t *child = ci->children + i;
for (int i = 0; i < ci->children_num; i++) {
oconfig_item_t *child = ci->children + i;
- if (strcasecmp("Sensor", child->key) == 0)
- ignorelist_add(st->ignorelist, child->values[0].value.string);
- else if (strcasecmp("IgnoreSelected", child->key) == 0) {
+ if (strcasecmp("Sensor", child->key) == 0) {
+ char *value = NULL;
+ status = cf_util_get_string(child, &value);
+ if (status != 0)
+ break;
+ ignorelist_add(st->ignorelist, value);
+ sfree(value);
+ } else if (strcasecmp("IgnoreSelected", child->key) == 0) {
_Bool t;
status = cf_util_get_boolean(child, &t);
if (status != 0)
_Bool t;
status = cf_util_get_boolean(child, &t);
if (status != 0)