X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=output%2Foutput_binary.c;h=e5c1e4adb27ff537ffdeaa6c1206421466a6d443;hb=e10d6e32e4d8766e12b752da6d1806944b0ee85e;hp=fb7c3f588c103a3a3f232f091b281ee850e85210;hpb=d494a4aa9dcbd90126d86757d16fa3e0f0a419f3;p=libsigrok.git diff --git a/output/output_binary.c b/output/output_binary.c index fb7c3f58..e5c1e4ad 100644 --- a/output/output_binary.c +++ b/output/output_binary.c @@ -22,6 +22,7 @@ #include #include #include +#include #include "config.h" static int data(struct sr_output *o, const char *data_in, uint64_t length_in, @@ -32,8 +33,25 @@ static int data(struct sr_output *o, const char *data_in, uint64_t length_in, /* Prevent compiler warnings. */ o = 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,