bplist: Make sure to bail out if malloc() fails in parse_data_node()

Credit to OSS-Fuzz
diff --git a/src/bplist.c b/src/bplist.c
index 20e5090..c1f6007 100644
--- a/src/bplist.c
+++ b/src/bplist.c
@@ -394,6 +394,11 @@
     data->type = PLIST_DATA;
     data->length = size;
     data->buff = (uint8_t *) malloc(sizeof(uint8_t) * size);
+    if (!data->strval) {
+        plist_free_data(data);
+        PLIST_BIN_ERR("%s: Could not allocate %" PRIu64 " bytes\n", __func__, sizeof(uint8_t) * size);
+        return NULL;
+    }
     memcpy(data->buff, *bnode, sizeof(uint8_t) * size);
 
     return node_create(NULL, data);