Frédéric Wang
9b5a53b1d7
Move public headers into a separate include/woff2 directory
...
This is a first step to make WOFF2 a shared library. Public headers are moved
in their own directory to make the public API clearer. This is similar to
the c/include/brotli/ directory in Brotli. "using" commands are also removed
from the public headers, so that callers won't have unexpected side effect
when including the files.
2017-10-05 12:04:24 -07:00
Rod Sheeter
53846e1861
Relicense as MIT
2017-10-04 16:12:46 -07:00
Rod Sheeter
679771f97a
Reject fonts with bounding boxes for empty glyphs
2017-08-23 14:03:23 -07:00
Rod Sheeter
e6579e6b12
Reject fonts with bad loca origLength or hmtx reserved bits set. Correct misplaced bracket in type conversion.
2017-08-23 12:59:55 -07:00
Rod Sheeter
2e09253456
Check for non-consecutive glyf/loca. Reject inconsistent xform flags on glyf/loca
2017-07-31 09:16:49 -07:00
Rod Sheeter
2c6c5846dd
reminder to update fuzzer on change
2017-07-31 09:14:44 -07:00
Rod Sheeter
a3c61ecad8
Add woff2_info
2017-07-27 09:37:28 -07:00
Garret Rieger
44ab8c45d7
Fix a crash bug in the woff2 decoder when totalSfntSize in the woff2 header is <= 0.
2017-07-19 17:35:57 -07:00
Garret Rieger
849bdb0d24
Fix a crash in the woff2 encoder when it encounters a loca table with a length of zero.
2017-07-19 17:35:13 -07:00
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