X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fhameg-hmo%2Fapi.c;h=e4c53887e4ececca857129c47ff09bf2298d87a2;hb=d6d87fa2a28edbfa0f1c66ef4b03c9cd8bda095e;hp=ea2afef621867ed774703497f7588e961ee6b48e;hpb=b0e80e9aa9a7398fa01a7949deb17640ca3c7d47;p=libsigrok.git diff --git a/src/hardware/hameg-hmo/api.c b/src/hardware/hameg-hmo/api.c index ea2afef6..e4c53887 100644 --- a/src/hardware/hameg-hmo/api.c +++ b/src/hardware/hameg-hmo/api.c @@ -509,6 +509,7 @@ static int hmo_setup_channels(const struct sr_dev_inst *sdi) struct sr_channel *ch; struct dev_context *devc; struct sr_scpi_dev_inst *scpi; + int ret; devc = sdi->priv; scpi = sdi->conn; @@ -559,19 +560,23 @@ static int hmo_setup_channels(const struct sr_dev_inst *sdi) } } + ret = SR_OK; for (i = 0; i < model->digital_pods; i++) { if (state->digital_pods[i] == pod_enabled[i]) continue; g_snprintf(command, sizeof(command), (*model->scpi_dialect)[SCPI_CMD_SET_DIG_POD_STATE], i + 1, pod_enabled[i]); - if (sr_scpi_send(scpi, command) != SR_OK) - return SR_ERR; + if (sr_scpi_send(scpi, command) != SR_OK) { + ret = SR_ERR; + break; + } state->digital_pods[i] = pod_enabled[i]; setup_changed = TRUE; } - g_free(pod_enabled); + if (ret != SR_OK) + return ret; if (setup_changed && hmo_update_sample_rate(sdi) != SR_OK) return SR_ERR;