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;