X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fyokogawa-dlm%2Fprotocol.c;h=1bd863ee1545a645139111eaa78993657172758d;hb=685ed709982f5edd84f7666d0a8e03c2124dff92;hp=d22b223ef18b69f5ffd8036a32bd560ac63379ce;hpb=692716f5d1aae4ef06c67b57aaf253f46f538c33;p=libsigrok.git diff --git a/src/hardware/yokogawa-dlm/protocol.c b/src/hardware/yokogawa-dlm/protocol.c index d22b223e..1bd863ee 100644 --- a/src/hardware/yokogawa-dlm/protocol.c +++ b/src/hardware/yokogawa-dlm/protocol.c @@ -769,7 +769,6 @@ SR_PRIV int dlm_model_get(char *model_id, char **model_name, int *model_index) */ 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; @@ -778,9 +777,13 @@ SR_PRIV int dlm_device_init(struct sr_dev_inst *sdi, int model_index) 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++) { @@ -799,13 +802,10 @@ SR_PRIV int dlm_device_init(struct sr_dev_inst *sdi, int model_index) /* 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]); }