]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/yokogawa-dlm/protocol.c
kern-scale: drop obsolete redundant 'baudrate' parameter value
[libsigrok.git] / src / hardware / yokogawa-dlm / protocol.c
index d22b223ef18b69f5ffd8036a32bd560ac63379ce..1bd863ee1545a645139111eaa78993657172758d 100644 (file)
@@ -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]);
        }