Ben Wagner
216e077600
[truetype] Add better checks for loading `gvar' table ( #57905 ).
...
* src/truetype/ttgxvar.c (ft_var_load_gvar): Delay settings of any
`blend->xxxcount' values until the corresponding data has been
checked.
Also do some sanitizing to avoid a too early exit.
(TT_Vary_Apply_Glyph_Deltas): Improve tracing message.
2020-02-28 07:43:00 +01:00
Dominik Röttsches
5b1a37af56
Fix for CFF space glyph regression ( #57541 ).
...
* src/psaux/psft.c (cf2_decoder_parse_substrings): Replace early-out
with FT_OFFSET.
2020-02-25 11:02:28 +01:00
Werner Lemberg
fa147af4a5
[woff2] Fix font table access.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=20778
* src/sfnt/sfwoff2.c (get_x_mins): Explicitly check for presence of
`head' table, which might not have been processed yet.
2020-02-22 18:30:46 +01:00
Werner Lemberg
6e49dff005
[psaux] Make `t1_decoder_parse_metrics' handle `op_div' ( #57519 ).
...
* src/psaux/t1decode.c (t1_decoder_parse_metrics): Copy
corresponding code from old engine's `t1_decoder_parse_charstrings'
function.
2020-02-21 21:00:04 +01:00
Nikolaus Waxweiler
49f3394d7a
[autofit] Add support for Hanifi Rohingya script.
...
* src/autofit/afblue.dat: Add blue zone data for Hanifi Rohingya.
* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
* src/autofit/afscript.h: Add Hanifi Rohingya standard character.
* src/autofit/afranges.c, src/autofit/afstyles.h: Add Hanifi
Rohingya data.
2020-02-19 20:04:31 +01:00
Werner Lemberg
8930cc9618
* src/sfnt/ttcmap.c (tt_face_build_cmaps): Ignore version ( #57708 ).
2020-02-12 18:25:03 +01:00
Werner Lemberg
4a19a53d5a
* src/truetype/ttinterp.c (TT_RunIns): Adjust loop counter ( #57732 ).
...
The font that exceeds the old limit is Constantine, version 1.001.
2020-02-04 13:37:19 +01:00
Werner Lemberg
e5038be704
Update all copyright notices.
2020-01-19 17:05:19 +01:00
Werner Lemberg
fd03cf8816
[base] Fix `FREETYPE_PROPERTIES=type1:hinting-engine=adobe`.
...
* src/base/ftpsprop.c (ps_property_set) [hinting-engine]: Avoid an
incorrect return value that caused a warning. The function did the
right thing, though.
2020-01-04 19:28:36 +01:00
Werner Lemberg
a99a8e2863
[woff2] Fix memory leaks and a runtime warning.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19773
* src/sfnt/sfwoff2.c (compute_ULong_sum): Add missing cast.
(reconstruct_hmtx): Add missing deallocation calls.
2020-01-03 18:09:12 +01:00
Dominik Röttsches
10d8de7541
[truetype] Fix UBSan warning on offset to nullptr ( #57501 ).
...
* src/truetype/ttinterp.c (Ins_CALL): Fail if `exc->FDefs' is null.
2020-01-02 11:14:01 +01:00
Nikhil Ramakrishnan
a4df0373c7
[woff2] Allow bitmap-only fonts ( #57394 ).
...
* src/sfnt/sfwoff2.c (reconstruct_font): Fix test for `glyf' and
`loca' tables.
2019-12-31 16:04:01 +01:00
Dominik Röttsches
8cee1dde4e
Fix more UBSan warnings on adding offset to nullptr ( #57432 ).
...
* src/truetype/ttinterp.c (Ins_LOOPCALL), src/psaux/psft.c
(cf2_initLocalRegionBuffer): Use `FT_OFFSET'.
2019-12-21 19:03:48 +01:00
Werner Lemberg
7e1b39f6cd
[truetype] Fix UBSan warnings on adding offsets to nullptr.
...
Reported as
https://bugs.chromium.org/p/chromium/issues/detail?id=1032152
* src/truetype/ttinterp.c (Ins_FDEF, Ins_IDEF): Use `FT_OFFSET'.
2019-12-16 11:07:58 +01:00
Werner Lemberg
0c14a3adb0
[truetype] Fix integer overflow.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19305
* src/truetype/ttinterp.c (Ins_MIRP): Use `ADD_LONG'.
2019-12-14 00:04:01 +01:00
Werner Lemberg
2c9a2d58ca
Another bunch of UBSan warnings on adding offsets to nullptr.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19427
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19433
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19441
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19451
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19452
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19457
* src/autofit/aflatin.c (af_latin_hints_compute_segments,
af_latin_hints_compute_edges): Use `FT_OFFSET'.
* src/base/ftstream.c (FT_Stream_EnterFrame): Use `FT_OFFSET'.
* src/psaux/cffdecode.c (cff_decoder_parse_charstrings): Exit early
if there is no charstring.
* src/psaux/psobjs.c (t1_decrypt): Use `FT_OFFSET'.
* src/smooth/ftsmooth.c (ft_smooth_render_generic): Exit early for
zero bitmap dimensions.
2019-12-13 23:56:25 +01:00
Dominik Röttsches
11d4ce23ac
Fix more UBSan warnings on adding offset to nullptr ( #57384 )
...
* src/smooth/ftsmooth.c (ft_smooth_render_generic),
src/psaux/psobjs.c (ps_table_add): Use `FT_OFFSET'.
2019-12-09 13:11:41 +01:00
Werner Lemberg
dfc9a049de
* src/truetype/ttinterp.c (TT_RunIns): Use `FT_OFFSET'.
...
Reported as
https://bugs.chromium.org/p/chromium/issues/detail?id=1030614
2019-12-05 08:44:30 +01:00
Werner Lemberg
551bd3a90e
More nullptr offset UBSan warnings ( #57331 , #57347 ).
...
* src/autofit/afcjk.c (af_cjk_hints_compute_segments),
src/psaux/psft.c (cf2_getSeacComponent), src/truetype/ttinterp.c
(Ins_UNKNOWN): Use `FT_OFFSET'.
2019-12-03 11:52:48 +01:00
Dominik Röttsches
4270e9f324
Avoid more nullptr offset UBSan warnings ( #57316 ).
...
* src/base/ftoutln.c (FT_Outline_Transform): Bail on empty points.
* src/cff/cffload.c (cff_subfont_load): Use `FT_OFFSET'.
* src/psaux/psft.c (cf2_decoder_parse_substrings): Early out if
`charstring_base' or `charstring_len' are null.
* src/sfnt/ttload.c (tt_face_load_name): Use `FT_OFFSET'.
2019-11-29 06:26:18 +01:00
John Stracke
d4f9c24989
[base] Really fix #57194 .
...
Apply accidentally missed second part of patch.
* src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Call
`FT_GlyphLoader_CreateExtra'.
2019-11-23 11:25:28 +01:00
Werner Lemberg
9df460b632
[truetype] Avoid sanitizer warning ( #57289 ).
...
* src/truetype/ttpload.c (tt_face_get_device_metrics): Use
`FT_OFFSET'.
2019-11-23 11:09:40 +01:00
Armin Hasitzka
c67b9a1c5b
[truetype] Fix integer overflow ( #57287 ).
...
* src/truetype/ttgload.c (compute_glyph_metrics): Use `SUB_LONG'.
2019-11-23 11:01:18 +01:00
Ben Wagner
3cb7b3f7cb
[sfnt] Avoid sanitizer warning ( #57286 ).
...
* src/sfnt/ttcmap.c (tt_face_build_cmaps): Avoid possible `NULL +
offset' computation.
Tag `table' as `const'.
2019-11-23 10:54:51 +01:00
John Stracke
2d1d60aac6
[base] Fix `NULL + offset' sanitizer warnings ( #57194 ).
...
* src/base/ftgloadr.c (FT_GlyphLoader_Adjust_Points,
FT_GlyphLoader_Adjust_Subglyphs): Use `FT_OFFSET'.
(FT_GlyphLoader_CreateExtra): Add short cut if some values are zero.
2019-11-23 10:42:04 +01:00
Ben Wagner
9b0179597e
[sfnt] Ensure OTTO fonts have tables ( #57285 ).
...
* src/sfnt/ttload.c (tt_face_load_font_dir): Add test.
2019-11-23 10:07:48 +01:00
Behdad Esfahbod
07c8d8bbdb
Minor fixes for recent compilers.
...
* src/gzip/infutil.h (inflate_mask): Add `const'.
* src/autofit/aflatin2.c: Include `ft2build.h'.
2019-11-23 10:00:02 +01:00
Werner Lemberg
b75031a26e
* src/sfnt/sfwoff2.c (woff2_open_font): Check `num_fonts' for TTCs.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18494
2019-10-25 21:29:13 +02:00
Werner Lemberg
3b8bc65c50
* src/sfnt/sfwoff2.c (woff2_open_font): Avoid undefined shift.
...
Also improve tracing.
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18390
2019-10-22 08:07:05 +02:00
Alexei Podtelezhnikov
90a30f154a
* src/sfnt/pngshim.c (premultiply_data): Optimize for __SSE__ only.
2019-10-10 22:04:50 -04:00
Werner Lemberg
545a481a74
* src/sfnt/sfwoff2.c (reconstruct_glyf): Check `triplet_size'.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18108
2019-10-10 13:11:06 +02:00
John Tytgat
1e9229f0fc
[cff] Fix FT_FACE_FLAG_GLYPH_NAMES for CFF2 based fonts ( #57023 ).
...
* src/cff/cffobjs.c (cff_face_init): Don't set FT_FACE_FLAG_GLYPH_NAMES
for CFF2 based fonts.
2019-10-09 15:37:19 +02:00
Werner Lemberg
5a1a79c0e8
[woff2] Fix SFNT table checks.
...
Also reduce number of SFNT table lookups.
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18065
* include/freetype/internal/wofftypes.h (WOFF2_InfoRec): Add fields
`glyf_table', `loca_table', and `head_table'.
* src/sfnt/sfwoff2.c (reconstruct_glyf): Update signature.
Use table pointers in `info' parameter.
(get_x_mins): Check `maxp_table'
Use table pointers in `info' parameter.
(reconstruct_font): Use and set table pointers in `info' parameter.
Fix check for `glyf' and `loca' tables.
Update call to `reconstruct_glyf'.
(woff2_open_font): Updated.
2019-10-08 11:12:18 +02:00
Werner Lemberg
1167bff3e9
* src/sfnt/sfwoff2 (reconstruct_glyf): Fix reallocation.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18046
2019-10-06 23:22:34 +02:00
Werner Lemberg
0fcf486e0d
Improve memory debugging.
...
* include/freetype/internal/ftmemory.h (FT_MEM_FREE): Use
`FT_DEBUG_INNER' to set source code file name and line.
* src/base/ftdbgmem.c (ft_mem_table_remove): Better formatting of
tracing message.
2019-10-06 21:12:42 +02:00
Werner Lemberg
1f4e5bcb19
* src/sfnt/sfwoff2 (reconstruct_font): Fix reallocation.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17966
2019-10-03 21:07:16 +02:00
Alexei Podtelezhnikov
c912690d22
* src/base/ftstroke.c (ft_stroker_inside): Speed up.
2019-09-30 22:45:34 -04:00
Werner Lemberg
94815d6efa
* src/sfnt/sfwoff2 (woff2_open_font): Initialize `woff2.ttc_fonts'.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17804
2019-10-01 00:15:25 +02:00
Werner Lemberg
839a023619
* src/sfnt/sfwoff2.c (reconstruct_font): Fix memory leak.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17812
2019-09-30 07:41:57 +02:00
Werner Lemberg
12696dcf9b
[woff2] Reject fonts without `head' table.
...
Also fix memory deallocation in case of error.
`head' problem reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17820
* src/sfnt/sfwoff2.c (reconstruct_glyf): Don't use `stream_close'.
Abort if `head_table' is NULL.
Don't free `transformed_buf' in case of error.
(woff2_open_font): Don't set `uncompressed_buf' to NULL.
2019-09-30 07:27:55 +02:00
Werner Lemberg
ba06adafcd
[woff2] Fix compiler warnings.
...
Problem reported by Alexei.
* src/sfnt/sfwoff2.c (reconstruct_glyf): Initialize `x_min'.
(reconstruct_font): Initialize `num_hmetrics'.
(woff2_open_font): Initialize `info'.
2019-09-29 13:29:21 +02:00
Werner Lemberg
c37a501458
* src/sfnt/sfwoff2.c (woff2_open_font): Fix sanity check.
...
Correct thinkos in patch from 2019-09-01.
2019-09-28 07:42:34 +02:00
Werner Lemberg
2bf603bde6
[woff2] Fix memory leaks.
...
One of them reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17766
* src/sfnt/sfwoff2.c (woff2_open_font): Free `info->x_mins' and
`woff2->ttc_fonts'.
(reconstruct_glyf): Initialize `info->x_mins'.
2019-09-28 07:38:16 +02:00
Alexei Podtelezhnikov
b39576f984
* src/base/ftstroke.c (ft_stroker_cap): Speed up caps.
2019-09-27 19:18:49 -04:00
Alexei Podtelezhnikov
432efa25b3
* src/base/ftstroke.c (ft_stroker_outside): Speed up clipped miter.
...
* include/freetype/ftstroke.h: Wordsmith miter docs.
2019-09-25 21:50:16 -04:00
Werner Lemberg
db4083fd7f
* src/sfnt/sfwoff2.c (woff2_open_font): Check (sum of) table sizes.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17684
2019-09-25 08:48:26 +02:00
Alexei Podtelezhnikov
4881f75b7c
* src/base/ftstroke.c (ft_stroke_border_arcto): Speed up calculations.
2019-09-23 22:57:00 -04:00
Nikhil Ramakrishnan
5327092bb2
[woff2] Fix memory leaks.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=16896
* src/sfnt/sfwoff2.c (woff2_open_font): Fix error handling.
Free `uncompressed_buf'.
(reconstruct_font): Free `transformed_buf'.
2019-09-20 06:30:28 +02:00
Werner Lemberg
04ebb2a000
* src/otvalid/otvcommon.c (otv_Coverage_get_last): Guard `count'.
...
Problem reported by Marc Schönefeld <marc.schoenefeld@gmx.org>.
2019-09-17 19:46:59 +02:00
Werner Lemberg
99f23d6ff2
* src/sfnt/sfwoff2.c (woff2_open_font): Check table index.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17100
2019-09-17 13:22:28 +02:00