diff --git a/.gitignore b/.gitignore index e327693..6b35b1f 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ *.a /woff2_compress /woff2_decompress +/woff2_info diff --git a/src/woff2_dec.cc b/src/woff2_dec.cc index b7c70df..831dd45 100644 --- a/src/woff2_dec.cc +++ b/src/woff2_dec.cc @@ -600,6 +600,14 @@ bool ReconstructGlyf(const uint8_t* data, Table* glyf_table, instruction_size, glyph_buf.get(), glyph_buf_size, &glyph_size))) { return FONT_COMPRESSION_FAILURE(); } + } else { + // n_contours == 0; empty glyph. Must NOT have a bbox. + if (PREDICT_FALSE(have_bbox)) { +#ifdef FONT_COMPRESSION_BIN + fprintf(stderr, "Empty glyph has a bbox\n"); +#endif + return FONT_COMPRESSION_FAILURE(); + } } loca_values[i] = out->Size() - glyf_start;