*/
SR_PRIV int dlm_device_init(struct sr_dev_inst *sdi, int model_index)
{
- char tmp[25];
int i;
struct sr_channel *ch;
struct dev_context *devc;
devc->analog_groups = g_malloc0(sizeof(struct sr_channel_group*) *
scope_models[model_index].analog_channels);
-
devc->digital_groups = g_malloc0(sizeof(struct sr_channel_group*) *
scope_models[model_index].pods);
+ if (!devc->analog_groups || !devc->digital_groups) {
+ g_free(devc->analog_groups);
+ g_free(devc->digital_groups);
+ return SR_ERR_MALLOC;
+ }
/* Add analog channels, each in its own group. */
for (i = 0; i < scope_models[model_index].analog_channels; i++) {
/* Add digital channel groups. */
for (i = 0; i < scope_models[model_index].pods; i++) {
- g_snprintf(tmp, sizeof(tmp), "POD%d", i);
-
devc->digital_groups[i] = g_malloc0(sizeof(struct sr_channel_group));
if (!devc->digital_groups[i])
return SR_ERR_MALLOC;
-
- devc->digital_groups[i]->name = g_strdup(tmp);
+ devc->digital_groups[i]->name = g_strdup_printf("POD%d", i);
sdi->channel_groups = g_slist_append(sdi->channel_groups,
devc->digital_groups[i]);
}