From 819184ee68f1fda1ebc5b0a5f6aed403ecc27403 Mon Sep 17 00:00:00 2001 From: Uwe Hermann Date: Wed, 6 Apr 2011 19:51:11 +0200 Subject: [PATCH] Binary output: Add more error checks. --- output/output_binary.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) 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;