]> sigrok.org Git - libsigrok.git/commitdiff
Binary output: Add more error checks.
authorUwe Hermann <redacted>
Wed, 6 Apr 2011 17:51:11 +0000 (19:51 +0200)
committerUwe Hermann <redacted>
Sun, 10 Apr 2011 21:03:33 +0000 (23:03 +0200)
output/output_binary.c

index fb7c3f588c103a3a3f232f091b281ee850e85210..7cc25a520687e1a4d1bf09bc67c2e9f46f733d6c 100644 (file)
@@ -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;