]> sigrok.org Git - libsigrok.git/blobdiff - output/output_binary.c
device: Make some parameters const.
[libsigrok.git] / output / output_binary.c
index fb7c3f588c103a3a3f232f091b281ee850e85210..98ad3ad93c0aa96205fa47e01135a799bac07c93 100644 (file)
@@ -22,6 +22,7 @@
 #include <string.h>
 #include <glib.h>
 #include <sigrok.h>
+#include <sigrok-internal.h>
 #include "config.h"
 
 static int data(struct sr_output *o, const char *data_in, uint64_t length_in,
@@ -30,10 +31,27 @@ static int data(struct sr_output *o, const char *data_in, uint64_t length_in,
        char *outbuf;
 
        /* Prevent compiler warnings. */
-       o = o;
+       (void)o;
 
-       if (!(outbuf = calloc(1, length_in)))
+       if (!data_in) {
+               sr_warn("binary output: %s: data_in was NULL", __func__);
+               return SR_ERR;
+       }
+
+       if (!length_out) {
+               sr_warn("binary output: %s: length_out was NULL", __func__);
+               return SR_ERR;
+       }
+
+       if (length_in == 0) {
+               sr_warn("binary output: %s: length_in was 0", __func__);
+               return SR_ERR;
+       }
+
+       if (!(outbuf = calloc(1, length_in))) {
+               sr_warn("binary output: %s: outbuf calloc failed", __func__);
                return SR_ERR_MALLOC;
+       }
 
        memcpy(outbuf, data_in, length_in);
        *data_out = outbuf;
@@ -43,7 +61,7 @@ static int data(struct sr_output *o, const char *data_in, uint64_t length_in,
 }
 
 struct sr_output_format output_binary = {
-       .extension = "binary",
+       .id = "binary",
        .description = "Raw binary",
        .df_type = SR_DF_LOGIC,
        .init = NULL,