Index: src/woff2.cc |
=================================================================== |
--- src/woff2.cc (revision 103) |
+++ src/woff2.cc (working copy) |
@@ -826,6 +826,10 @@ |
if (!ReadBase128(file, &src_length)) { |
return OTS_FAILURE(); |
} |
+ } else if ((flag_byte >> 6) == kShortFlagsContinue) { |
+ // The compressed data for this table is in a previuos table, so we set |
+ // the src_length to zero. |
+ src_length = 0; |
} |
// Disallow huge numbers (> 1GB) for sanity. |
if (src_length > 1024 * 1024 * 1024 || |
@@ -954,12 +958,12 @@ |
} |
std::vector<uint8_t> uncompressed_buf; |
bool continue_valid = false; |
+ const uint8_t* transform_buf = NULL; |
for (uint16_t i = 0; i < num_tables; ++i) { |
const Table* table = &tables.at(i); |
uint32_t flags = table->flags; |
const uint8_t* src_buf = data + table->src_offset; |
uint32_t compression_type = flags & kCompressionTypeMask; |
- const uint8_t* transform_buf = NULL; |
size_t transform_length = table->transform_length; |
if ((flags & kWoff2FlagsContinueStream) != 0) { |
if (!continue_valid) { |