Werner Lemberg
57cbb8c148
[sfnt] Fix cmap 14 validation ( #46346 ).
...
* src/sfnt/ttcmap.c (tt_cmap14_validate): Check limit before
accessing `numRanges' and `numMappings'.
Fix size check for non-default UVS table.
2015-10-31 18:47:26 +01:00
Werner Lemberg
009cc15035
[sfnt] Handle infinite recursion in bitmap strikes ( #46344 ).
...
* src/sfnt/ttsbit.c (TT_SBitDecoder_LoadFunc,
tt_sbit_decoder_load_bitmap, tt_sbit_decoder_load_byte_aligned,
tt_sbit_decoder_load_bit_aligned, tt_sbit_decoder_load_png): Add
argument for recursion depth.
(tt_sbit_decoder_load_compound): Add argument for recursion depth.
Increase recursion counter for recursive call.
(tt_sbit_decoder_load_image): Add argument for recursion depth.
Check recurse depth.
(tt_face_load_sbit_image): Updated.
2015-10-31 17:52:56 +01:00
Werner Lemberg
4188deacf3
Comments.
2015-10-30 08:07:56 +01:00
Werner Lemberg
02cfd71498
* src/autofit/afhints.c (af_glyph_hints_dump_points): Minor.
2015-10-29 20:50:57 +01:00
Werner Lemberg
017db03ec5
* CMakeLists.txt: Remove code to set MSVC's /FD compiler switch.
...
Problem reported by David Capello <davidcapello@gmail.com>; see
http://lists.nongnu.org/archive/html/freetype-devel/2015-10/msg00108.html
for details.
2015-10-29 05:52:09 +01:00
Werner Lemberg
fba29fabb3
[pfr] Add some safety guards ( #46302 ).
...
* src/pfr/pfrload.h (PFR_CHECK): Rename to...
(PFR_CHECK_SIZE): ... this.
(PFR_SIZE): [!PFR_CONFIG_NO_CHECKS]: Define to PFR_CHECK_SIZE.
* src/pfr/pfrload.c (pfr_log_font_count): Check `count'.
(pfr_extra_item_load_kerning_pairs): Remove tracing message.
(pfr_phy_font_load): Use PFR_CHECK_SIZE where appropriate.
Allocate `chars' after doing a size checks.
* src/pfr/pfrsbit.c (pfr_load_bitmap_bits): Move test for invalid
bitmap format to...
(pfr_slot_load_bitmap): ... this function.
Check bitmap size.
2015-10-27 21:04:48 +01:00
Werner Lemberg
4a3fce93c2
[pfr] Formatting, improving comments.
2015-10-27 19:27:39 +01:00
Werner Lemberg
6a19a7d332
[truetype] Fix sanitizing logic for `loca' ( #46223 ).
...
* src/truetype/ttpload.c (tt_face_load_loca): A thinko caused an
incorrect adjustment of the number of glyphs, most often using far
too large values.
2015-10-26 15:40:22 +01:00
Werner Lemberg
7f00fa6462
[autofit] Improve tracing.
...
* src/autofit/afhints.c (af_print_idx, af_get_segment_index,
af_get_edge_index): New functions.
(af_glyph_hints_dump_points): Remove unnecessary `|', `[', and `]'.
Add segment and edge index for each point.
Slightly change printing order of some elements.
Don't print `-1' but `--' for missing elements.
(af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Remove
unnecessary `|', `[', and `]'.
Don't print `-1' but `--' for missing elements.
2015-10-25 10:59:59 +01:00
Werner Lemberg
07f27e1e43
Thinkos and omissions.
2015-10-24 15:22:13 +02:00
Werner Lemberg
6f09011fe6
[sfnt] Sanitize bitmap strike glyph height.
...
Problem reported by Nikolay Sivov <bunglehead@gmail.com>.
* src/sfnt/ttsbit.c (tt_face_load_strike_metrics): Avoid zero value
for `metrics->height' by applying some heuristics.
2015-10-24 10:10:22 +02:00
Werner Lemberg
e93d326c8b
[sfnt, type42] Fix clang compiler warnings.
...
* src/sfnt/sfobjs.c (sfnt_init_face): Initialize `offset'.
* src/type42/t42parse.c (t42_parse_sfnts): Use proper cast.
2015-10-22 10:17:20 +02:00
Werner Lemberg
f1c93439b9
[cff] Avoid overflow/module arithmetic.
...
This modifies the addition of subroutine number to subroutine bias
from unsigned to signed, but does not change any results.
* src/cff/cf2ft.c (cf2_initGlobalRegionBuffer,
cf2_initLocalRegionBuffer): Change variable names from (unsigned)
`idx' to (signed) `subrNum', since it is not an index until after
the bias is added.
* src/cff/cf2ft.h: Updated.
* src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdCALLSUBR>:
Updated similarly.
2015-10-22 10:11:23 +02:00
Werner Lemberg
59ae73fe16
[cid] Better check of `SubrCount' dictionary entry ( #46272 ).
...
* src/cid/cidload.c (cid_face_open): Add more sanity tests for
`fd_bytes', `gd_bytes', `sd_bytes', and `num_subrs'.
2015-10-22 09:26:00 +02:00
Werner Lemberg
5dedbc048f
Improve documentation of `FT_Get_MM_Var' and `FT_MM_Var'.
2015-10-22 07:22:55 +02:00
Werner Lemberg
e484d36b2b
[base] Pacify compiler ( #46266 ).
...
* src/base/ftoutln.c (FT_Outline_EmboldenXY): Initialize `in' and
`anchor'.
2015-10-21 20:48:27 +02:00
Werner Lemberg
87fefc594e
[type42] Fix heap buffer overflow ( #46269 ).
...
* src/type42/t42parse.c (t42_parse_sfnts): Fix off-by-one error in
bounds checking.
2015-10-21 20:29:12 +02:00
Dave Arnold
3cfd51233c
[cff] Fix limit in assert for max hints.
...
* src/cff/cf2interp.c (cf2_hintmask_setAll): Allow mask equal to the
limit (96 bits).
2015-10-21 14:07:25 +02:00
Werner Lemberg
3066f5f53d
Revert erroneously applied commits.
2015-10-21 14:05:41 +02:00
Dave Arnold
748e368173
[cff] Remove an assert ( #46107 ).
...
* src/cff/cf2hints.c (cf2_hintmap_insertHint): Ignore paired edges
in wrong order.
2015-10-21 13:58:43 +02:00
Werner Lemberg
e6593389cf
[sfnt] Avoid unnecessarily large allocation for WOFFs ( #46257 ).
...
* src/sfnt/sfobjs.c (woff_open_font): Use WOFF's `totalSfntSize'
only after thorough checks.
Add tracing messages.
2015-10-21 08:04:29 +02:00
Werner Lemberg
649ca5562d
[type42] Better check invalid `sfnts' array data ( #46255 ).
...
* src/type42/t42parse.c (t42_parse_sfnts): Table lengths must be
checked individually against available data size.
2015-10-21 07:01:45 +02:00
Werner Lemberg
3eccc3a3f8
[cid] Add a bunch of safety checks.
...
* src/cid/cidload.c (parse_fd_array): Check `num_dicts' against
stream size.
(cid_read_subrs): Check largest offset against stream size.
(cid_parse_dict): Move safety check to ...
(cid_face_open): ... this function.
Also test length of binary data and values of `SDBytes',
`SubrMapOffset', `SubrCount', `CIDMapOffset', and `CIDCount'.
2015-10-20 22:31:57 +02:00
Werner Lemberg
d47d372c96
[cid] Avoid segfault with malformed input ( #46250 ).
...
* src/cid/cidload.c (cid_read_subrs): Return a proper error code for
unsorted offsets.
2015-10-20 12:24:36 +02:00
StudioEtrange
5cf83a5335
* CMakeLists.txt: Enable shared library builds on MinGW ( #46233 ).
2015-10-20 07:19:44 +02:00
Werner Lemberg
3c582060b2
* src/type1/t1afm.c (T1_Read_Metrics): Fix memory leak ( #46229 ).
2015-10-20 06:57:28 +02:00
Bungeman
ba8a528b19
[cid] Better handle invalid glyph stream offsets ( #46221 ).
...
* src/cid/cidgload.c (cid_load_glyph): Check minimum size of glyph
length.
2015-10-19 23:27:06 +02:00
Werner Lemberg
2961b66c70
Typo.
2015-10-19 23:17:25 +02:00
Werner Lemberg
24cee3a8a3
[psaux] Fix tracing of negative numbers.
...
Due to incorrect casting negative numbers were shown as very large
(positive) integers on 64bit systems.
* src/psaux/t1decode.c (t1_decoder_parse_charstrings) <op_none>:
Use division instead of shift.
2015-10-19 23:00:28 +02:00
Werner Lemberg
5179c89f61
Comments.
2015-10-19 08:49:25 +02:00
Werner Lemberg
14213b5409
[truetype] Improve TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES ( #46223 ).
...
* devel/ftoption.h, include/freetype/config/ftoption.h: Surround it
with #ifndef ... #endif, as suggested in the tracker issue.
2015-10-18 18:15:04 +02:00
Werner Lemberg
dcfc4d9c21
[truetype] Better protection against malformed `fpgm' ( #46223 ).
...
* src/truetype/ttobjs.c (tt_size_init_bytecode): Don't execute a
malformed `fpgm' table more than once.
2015-10-18 16:47:06 +02:00
Werner Lemberg
7643b5839b
* src/cid/cidgload.c (cid_load_glyph): Fix memory leak.
...
Reported by Kostya Serebryany <kcc@google.com>.
2015-10-17 15:51:29 +02:00
Werner Lemberg
b185747dd6
[bdf] Prevent memory leak ( #46217 ).
...
* src/bdf/bdflib.c (_bdf_parse_glyphs) <STARTCHAR>: Check
_BDF_GLYPH_BITS.
2015-10-17 14:21:41 +02:00
Werner Lemberg
797ca5acb5
Typo.
2015-10-17 11:57:16 +02:00
Werner Lemberg
e1ca18d449
[bdf] Use stream size to adjust number of glyphs.
...
* src/bdf/bdflib.c (ACMSG17): New message macro.
(_bdf_parse_t): Add member `size'.
(bdf_load_font): Set `size'.
(_bdf_parse_glyphs): Adjust `cnt' if necessary.
2015-10-17 11:51:27 +02:00
Werner Lemberg
0af21dcf13
* src/cid/cidload.c (cid_parse_dict): Check `[FG]DBytes' size.
2015-10-17 09:29:52 +02:00
Werner Lemberg
38a3dd5566
Typo.
2015-10-17 09:15:37 +02:00
Werner Lemberg
0ba98da472
* src/cid/cidgload.c (cid_glyph_load): Check file offsets ( #46222 ).
2015-10-17 09:11:02 +02:00
Werner Lemberg
8edfcbed53
[psaux] Fix heap buffer overflow ( #46221 ).
...
* src/psaux/t1decode.c (t1_decoder_parse_charstring) <operator 12>:
Fix limit check.
2015-10-17 08:11:16 +02:00
Werner Lemberg
a5ecfb4ce6
* src/cid/cidload.c (cid_parse_dict): Handle invalid input ( #46220 ).
2015-10-17 06:15:55 +02:00
Kostya Serebryany
266976b163
add src/tools/ftfuzzer/README
2015-10-15 22:15:53 -07:00
Bungeman
65d8980491
[bdf] Fix memory leak ( #46213 ).
...
* src/bdf/bdflib.c (bdf_load_font): Always go to label `Fail' in
case of error.
2015-10-15 23:50:16 +02:00
Werner Lemberg
24a1fcdfce
[truetype] Add TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES ( #46208 ).
...
* devel/ftoption.h, include/freetype/config/ftoption.h
(TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES): New configuration macro.
* src/truetype/ttinterp.c (MAX_RUNNABLE_OPCODES): Removed.
(TT_RunIns): Updated.
2015-10-15 21:50:15 +02:00
Werner Lemberg
911171ac49
Minor.
2015-10-15 21:22:16 +02:00
Werner Lemberg
837ad9d411
* src/truetype/ttinterp.c (TT_RunIns): Fix bytecode stack tracing.
...
The used indices were off by 1.
2015-10-15 21:15:45 +02:00
Werner Lemberg
8b76eaf092
* src/tools/ftfuzzer/ftfuzzer.cc: Handle fixed sizes ( #46211 ).
2015-10-15 18:28:43 +02:00
Werner Lemberg
e03214e166
[base] Compute MD5 checksums only if explicitly requested.
...
This improves profiling accuracy.
* src/base/ftobjs.c (FT_Render_Glyph_Internal): Implement it.
2015-10-15 16:58:13 +02:00
Werner Lemberg
6de2a355ff
Minor.
2015-10-15 08:40:12 +02:00
Werner Lemberg
2a20c92c4b
[base] Use `FT_' namespace for MD5 functions ( #42366 ).
...
* src/base/ftobjs.c (MD5_*): Define as `FT_MD5_*'.
Undefine HAVE_OPENSSL.
2015-10-14 15:23:15 +02:00