From: Uwe Hermann Date: Wed, 6 Apr 2011 17:51:11 +0000 (+0200) Subject: Binary output: Add more error checks. X-Git-Tag: libsigrok-0.1.0~296 X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=819184ee68f1fda1ebc5b0a5f6aed403ecc27403;p=libsigrok.git Binary output: Add more error checks. --- diff --git a/output/output_binary.c b/output/output_binary.c index fb7c3f58..7cc25a52 100644 --- a/output/output_binary.c +++ b/output/output_binary.c @@ -32,8 +32,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) { + g_warning("binary output: %s: data_in was NULL", __func__); + return SR_ERR; + } + + if (!length_out) { + g_warning("binary output: %s: length_out was NULL", __func__); + return SR_ERR; + } + + if (length_in == 0) { + g_warning("binary output: %s: length_in was 0", __func__); + return SR_ERR; + } + + if (!(outbuf = calloc(1, length_in))) { + g_warning("binary output: %s: outbuf calloc failed", __func__); return SR_ERR_MALLOC; + } memcpy(outbuf, data_in, length_in); *data_out = outbuf;