Prevent aos_send from sending invalid messages

We had a user who passed in "{foo: bar}" as the JSON.  This didn't
parse, but sent out a null message, which crashed arbitrary downstream
code.  Not cool.  Instead, prevent aos_send from letting such messages
go out on the channel by error checking the JSON -> flatbuffer result.

Change-Id: Iedab2567090d8ae042518ecd5ca091af491b61cf
Signed-off-by: Austin Schuh <austin.schuh@bluerivertech.com>
Signed-off-by: James Kuszmaul <james.kuszmaul@bluerivertech.com>
diff --git a/aos/aos_send.cc b/aos/aos_send.cc
index 980ebc7..8533f47 100644
--- a/aos/aos_send.cc
+++ b/aos/aos_send.cc
@@ -58,7 +58,14 @@
   flatbuffers::FlatBufferBuilder fbb(sender->fbb_allocator()->size(),
                                      sender->fbb_allocator());
   fbb.ForceDefaults(true);
-  fbb.Finish(aos::JsonToFlatbuffer(message_to_send, channel->schema(), &fbb));
+  flatbuffers::Offset<flatbuffers::Table> msg_offset =
+      aos::JsonToFlatbuffer(message_to_send, channel->schema(), &fbb);
+
+  if (msg_offset.IsNull()) {
+    return 1;
+  }
+
+  fbb.Finish(msg_offset);
 
   if (FLAGS_rate < 0) {
     sender->CheckOk(sender->Send(fbb.GetSize()));