Commit Graph

68 Commits

Author SHA1 Message Date
Garret Rieger 4f659ddbad Allow endian-aware optimizations only on whitelisted CPUs. 2017-07-19 17:34:24 -07:00
Garret Rieger 12141fdaf2 Support tables with 0 length (which previously failed in multiple places). 2017-07-19 17:32:38 -07:00
rsheeter cdd19711f4 Merge branch 'master' into master 2017-02-23 13:09:01 -08:00
Rod Sheeter 086bc06ce9 Avoid shadowing 2017-02-23 10:29:01 -08:00
Rod Sheeter 82a9f3afb2 Add check for size of head table to woff2 enc 2017-02-15 13:52:56 -08:00
Rod Sheeter 8109a2cc2b Add fuzzers for consumption by https://github.com/google/oss-fuzz 2017-01-03 16:21:48 -08:00
Eugene Kliuchnikov 9db42c09e9 Roll new brotli version. 2016-12-06 11:14:53 +01:00
Rod Sheeter 63b8fb6d0d Correct comment slightly 2016-09-21 14:48:52 -07:00
Rod Sheeter 58f6fe2aea Add a comment to clarify which ConvertWOFF2ToTTF should be preferred 2016-09-21 14:35:34 -07:00
Khaled Hosny cdd850ef52 Don’t ignore write failure
Makes it easy to find the source of the problems than failing later.
2016-08-09 15:59:50 +02:00
Rod Sheeter afbecce5ff Fix TTC detection, based on findings by libFuzzer 2016-05-25 08:53:43 -07:00
Rod Sheeter 8f3ff26c37 Fix an out of bounds access found by libFuzzer 2016-05-17 16:00:38 -07:00
Rod Sheeter a15a8ab86b Fixes for bugs uncovered by libFuzzer analysis. A write past buffer, a potential DOS by way of giant alloc, and an out of range access. 2016-05-06 13:14:42 -07:00
Rod Sheeter 9476664fd6 Fix bug where table could mismatch header vs data when allow_transforms was set false (not easily possible w/current tools) 2016-05-06 13:10:33 -07:00
Rod Sheeter 2bc6acf6df Push fix for https://bugs.chromium.org/p/chromium/issues/detail?id=604649 2016-04-21 09:29:50 -07:00
Rod Sheeter 07cd303dd2 Update to latest brotli. Use size_t more consistently. Remove dead code. 2016-04-21 09:27:28 -07:00
Rod Sheeter 4e698b8c6c Fix clang compile by adding <string> to woff2_out.h 2016-03-09 10:32:53 -08:00
Rod Sheeter b220918cab Stop trusting header totalSfntSize and glyf origLength 2016-03-08 12:30:08 -08:00
Steve Singer 9ba0580721 Fix issue #44
Use a static_cast instead of a reinterpert_cast so the code compiles
2016-02-10 22:25:06 -05:00
Rod Sheeter d1efde9124 Update woff2_dec.cc range checking 2016-02-04 08:24:36 -08:00
Rod Sheeter bdf886a06b Allow WOFF2Params to specify no transformations at all 2016-01-28 11:36:18 -08:00
Rod Sheeter 14f4cb67ec Tweaks requested by @fred-wang to help Mozilla build 2016-01-28 11:34:31 -08:00
Rod Sheeter c817c969bf hmtx optimization decoding. never encodes hmtx optimized as yet; need a cli param. 2016-01-20 14:10:02 -08:00
Kunihiko Sakamoto 965d077bde Fix signed/unsigned comparison warnings on MSVC 2015-11-17 18:20:03 +09:00
rsheeter 6dbcb5844e Merge pull request #34 from khaledhosny/master
Don’t print to stderr unless a standalone binary
2015-10-28 10:28:58 -07:00
Rod Sheeter fde07429be Be more accepting of fonts with unusual sets of tables 2015-10-26 07:16:42 -07:00
Khaled Hosny 17ed658d0a Don’t print to stderr unless a standalone binary
We will use woff2 code from OTS and it is undesirable for a library to
print messages to stderr.
2015-08-28 01:30:03 +02:00
Rod Sheeter eeec219f20 Only reorder the table directory 2015-07-27 08:47:58 -07:00
Khaled Hosny 208c8f854e Kill kWoff2FlagsContinueStream
There is only a single data stream for all the compressed tables, but
the code was originally written for separately compressed tables then
retrofitted, so this is an attempt to streamline it a bit.
2015-07-15 11:25:52 +02:00
Rod Sheeter 4e3bb3418f Merge PR #16 (reject composite glyphs w/o bbox), slightly modified to match recent code updates (mostly just adding branch predictions) 2015-07-14 10:12:40 -07:00
Rod Sheeter ea4c87a2c5 Updates from internal copy. Better branch prediction, ability to set Brotli quality on ConvertTTFToWOFF2 2015-07-13 09:08:04 -07:00
rsheeter e3ea2285a7 Merge pull request #25 from khaledhosny/invalid-base128
Reject UIntBase128 with leading zeros
2015-06-29 15:30:13 -04:00
Khaled Hosny f43ad22271 Reject UIntBase128 with leading zeros
Fixes #23.
2015-06-25 06:53:21 +02:00
Khaled Hosny c54533f47f Fix compiler warning on Mac OS X
warning: format specifies type 'unsigned long' but the argument has type
'uint64_t' (aka 'unsigned long long') [-Wformat]
2015-06-25 03:32:08 +02:00
Khaled Hosny c3d35ba2e1 Fix building with FONT_COMPRESSION_DEBUG 2015-05-01 01:01:11 +03:00
Rod Sheeter cbd682fcc9 remove comment that has been addressed 2015-04-22 15:55:53 -07:00
rsheeter 56e5e74d34 Merge pull request #13 from khaledhosny/bbox
Fix simple glyph bounding box handling
2015-04-22 15:52:54 -07:00
Khaled Hosny 531adab1fe Reject non-zero loca transformLength 2015-04-20 00:21:05 +02:00
Khaled Hosny 3f91c6e58f Check matadata and private blocks offsets & length
So that we can reject fonts with extraneous data between blocks, as the
spec says we should reject says we should reject such fonts.
2015-04-20 00:11:04 +02:00
Khaled Hosny 0634e0a719 Don't accept too long totalSfntSize
Per the spec (WOFF 2.0 spec just refer to WOFF 1.0 spec here):
http://www.w3.org/TR/2012/REC-WOFF-20121213/#conform-totalsize-longword-reject
2015-04-20 00:11:04 +02:00
Khaled Hosny de2cabb897 Fix simple glyph bounding box handling
Per the spec[1], the bounding box should be calculated and if it differs
from the one stored on the font, the original should be written
otherwise it should be omitted. On the other hand, the bounding box of
composite glyphs should be always written.

Fixes #12.

1. http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustCalculateOmitBBoxValues
2015-04-10 22:07:56 +02:00
Rod Sheeter 90603761c7 Mark as transformed. Correct how table records were used by font.cc when writing collections. 2015-04-09 07:47:55 -07:00
Rod Sheeter ab99e2f8bd Per discussion with WG, update table ordering to what OTS expects. Once browsers are on latest cut of OTS we will go back to spec order. 2015-03-04 12:27:22 -08:00
Rod Sheeter 498c637024 Correct decoder output table ordering 2015-03-03 09:30:12 -08:00
Rod Sheeter 538b401b77 tweak to how index by offset is built 2015-02-25 09:22:45 -08:00
Rod Sheeter 4e48243b3a In some build environments this results in off-by-one 2015-02-24 16:04:13 -08:00
Rod Sheeter 1c975530b9 Adding TTC support, take 1 2015-02-24 13:53:35 -08:00
Rod Sheeter 445f541996 Sort tables when decoding 2015-02-12 09:56:29 -08:00
Rod Sheeter 0a8567d4f9 Minor updates from internal copy 2015-02-12 09:30:22 -08:00
Roderick Sheeter 2b35420fa9 As suggested in https://github.com/google/woff2/pull/2, correct const for top 7 bits 2014-11-24 07:11:04 -08:00