]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/zketech-ebd-usb/protocol.c
kingst-la2016: fix segfault that often occurs when a capture is aborted
[libsigrok.git] / src / hardware / zketech-ebd-usb / protocol.c
index 0c99ea5034b5d70344a95244e78ab3aba275e9d5..4c586f6fd71989deec056a650a2abf96fb4e29a2 100644 (file)
@@ -99,6 +99,9 @@ SR_PRIV int ebd_loadstart(struct sr_serial_dev_inst *serial, struct dev_context
        int ret;
 
        ret = send_cmd(serial, start, 10);
+       if (ret)
+               return ret;
+
        sr_dbg("Current limit: %f.", devc->current_limit);
        if (ebd_current_is0(devc))
                return SR_OK;
@@ -224,9 +227,7 @@ SR_PRIV int ebd_receive_data(int fd, int revents, void *cb_data)
        sr_dbg("Current limit %f", current_limit);
 
        /* Begin frame. */
-       packet.type = SR_DF_FRAME_BEGIN;
-       packet.payload = NULL;
-       sr_session_send(sdi, &packet);
+       std_session_send_df_frame_begin(sdi);
 
        sr_analog_init(&analog, &encoding, &meaning, &spec, 4);
 
@@ -257,9 +258,7 @@ SR_PRIV int ebd_receive_data(int fd, int revents, void *cb_data)
        g_slist_free(l);
 
        /* End frame. */
-       packet.type = SR_DF_FRAME_END;
-       packet.payload = NULL;
-       sr_session_send(sdi, &packet);
+       std_session_send_df_frame_end(sdi);
 
        sr_sw_limits_update_samples_read(&devc->limits, 1);
        if (sr_sw_limits_check(&devc->limits))