diff options
author | arthurhsu@google.com <arthurhsu@google.com@672e30a5-4c29-85ac-ac6d-611c735e0a51> | 2011-08-10 20:06:32 +0000 |
---|---|---|
committer | arthurhsu@google.com <arthurhsu@google.com@672e30a5-4c29-85ac-ac6d-611c735e0a51> | 2011-08-10 20:06:32 +0000 |
commit | 3daf7a5c855b0640e2dd3904abe378e76a43829d (patch) | |
tree | cf3133b478f9569047efbb8a89e33259da43f154 /sfntly | |
parent | db6755301647bc1ad0616d7e370138bc822b4b06 (diff) | |
download | src-3daf7a5c855b0640e2dd3904abe378e76a43829d.tar.gz |
Fortify font build against error cases.
git-svn-id: http://sfntly.googlecode.com/svn/trunk/cpp/src@43 672e30a5-4c29-85ac-ac6d-611c735e0a51
Diffstat (limited to 'sfntly')
-rw-r--r-- | sfntly/font.cc | 1 | ||||
-rw-r--r-- | sfntly/font_data_table.cc | 5 |
2 files changed, 6 insertions, 0 deletions
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 @@ void Font::Builder::BuildTablesFromBuilders(TableBuilderMap* builder_map, } 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 @@ CALLER_ATTACH FontDataTable* FontDataTable::Builder::Build() { 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; |