Fortify font build against error cases.



git-svn-id: http://sfntly.googlecode.com/svn/trunk/cpp/src@43 672e30a5-4c29-85ac-ac6d-611c735e0a51
diff --git a/sfntly/font.cc b/sfntly/font.cc
index 814e2ee..32ecca7 100644
--- a/sfntly/font.cc
+++ b/sfntly/font.cc
@@ -387,6 +387,7 @@
     }
     if (table == NULL) {
 #if defined (SFNTLY_NO_EXCEPTION)
+      table_map->clear();
       return;
 #else
       std::string builder_string = "Unable to build table - ";
diff --git a/sfntly/font_data_table.cc b/sfntly/font_data_table.cc
index 1f9d1cc..e6d0984 100644
--- a/sfntly/font_data_table.cc
+++ b/sfntly/font_data_table.cc
@@ -89,6 +89,11 @@
     SubSerialize(new_data);
     data = new_data;
   }
+
+  if (data == NULL) {
+    return NULL;  // Do not build table with NULL data.
+  }
+
   FontDataTablePtr table = SubBuildTable(data);
   NotifyPostTableBuild(table);
   return table;