summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
inline | side by side (from parent 1:
addbb09)
Check for successful allocation before accessing struct members. Return
with an error from device initialization when allocation fails.
This was reported by clang's scan-build.
unsigned int i, j, group;
struct sr_channel *ch;
struct dev_context *devc;
unsigned int i, j, group;
struct sr_channel *ch;
struct dev_context *devc;
devc = sdi->priv;
model_index = -1;
devc = sdi->priv;
model_index = -1;
}
/* Add digital channel groups. */
}
/* Add digital channel groups. */
for (i = 0; i < scope_models[model_index].digital_pods; i++) {
devc->digital_groups[i] = g_malloc0(sizeof(struct sr_channel_group));
for (i = 0; i < scope_models[model_index].digital_pods; i++) {
devc->digital_groups[i] = g_malloc0(sizeof(struct sr_channel_group));
+ if (!devc->digital_groups[i]) {
+ ret = SR_ERR_MALLOC;
+ break;
+ }
devc->digital_groups[i]->name = g_strdup_printf("POD%d", i);
sdi->channel_groups = g_slist_append(sdi->channel_groups,
devc->digital_groups[i]);
}
devc->digital_groups[i]->name = g_strdup_printf("POD%d", i);
sdi->channel_groups = g_slist_append(sdi->channel_groups,
devc->digital_groups[i]);
}
+ if (ret != SR_OK)
+ return ret;
/* Add digital channels. */
for (i = 0; i < scope_models[model_index].digital_channels; i++) {
/* Add digital channels. */
for (i = 0; i < scope_models[model_index].digital_channels; i++) {