for (i = 0; i < num; ++i) {
elem = config_setting_get_elem(node, i);
+ if (!elem)
+ goto err_nomem;
+
value = config_setting_get_string(elem);
+ if (!value)
+ goto err_nomem;
+
list[i] = find_string(labels, value);
}
*out = list;
return 0;
+
+err_nomem:
+ free(list);
+ return -ENOMEM;
}
static int screen_entry_parse(config_setting_t *root, void *data)
for (i = 0; i < num; ++i) {
node = config_setting_get_elem(root, i);
+ if (!node)
+ return -ENOMEM;
+
config_setting_lookup_int(node, "pos_x", &ruler[i].pos_x);
config_setting_lookup_int(node, "pos_y", &ruler[i].pos_y);
config_setting_lookup_int(node, "height", &ruler[i].height);