Armin Hasitzka
642bc7590c
[cff] Fix memory overflow.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9869
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10869
* src/cff/cffparse.c (destruct_t2s_item, cff_parser_run): Store
evaluated T2 charstrings in separately allocated memory.
2018-11-22 10:29:35 +00:00
Alexei Podtelezhnikov
81f43a9d36
* builds/windows/{visualc,vc2005,vc2008}/freetype.vcproj: Fix it.
2018-11-18 14:47:32 -05:00
Alexei Podtelezhnikov
8d517e679b
Clarification.
2018-11-10 15:47:48 -05:00
Alexei Podtelezhnikov
78db9eecff
[smooth] Placeholder only for library-enabled LCD filtering.
...
* src/smooth/ftsmooth.c (ft_smooth_init): Add disabled
`FT_Library_SetLcdFilter' call.
2018-11-10 15:39:19 -05:00
Werner Lemberg
58e48e9287
[psaux] Add safety guard ( #54985 ).
...
* src/psaux/psobjs.c (cff_builder_close_contour): Do it.
2018-11-09 12:14:35 +01:00
Alexei Podtelezhnikov
3b6e65f7bf
* builds/unix/configure.raw: Require `windows.h' for windres.
2018-11-08 23:36:37 -05:00
Alexei Podtelezhnikov
181033d396
[ftstroke] Fix unpredictable failures ( #54986 ).
...
* src/base/ftstroke.c (ft_sroke_border_lineto): Fix lineto check.
2018-11-08 21:04:56 -05:00
Alexei Podtelezhnikov
81c31f62cb
[ftstroke] Fix unpredictable failures ( #54976 ).
...
* src/base/ftstroke.c (ft_sroke_border_close): Set the start tags.
2018-11-08 07:54:47 -05:00
Ben Wagner
fb0d66d04c
[truetype] Fix VF check from 2018-09-12 ( #54973 ).
...
* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Use correct
offsets for estimates.
2018-11-07 00:47:44 +01:00
Werner Lemberg
fbd2452346
[pshinter] Fix numeric overflow.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11242
* src/pshinter/pshrec.c (ps_dimension_add_t1stem): Implement it.
2018-11-06 11:15:31 +01:00
Werner Lemberg
5b86f53dd6
[psaux] Fix timeout in old CFF engine.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11260
* src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
<cff_op_sqrt> [CFF_CONFIG_OPTION_OLD_ENGINE]: Fix potential endless
loop.
2018-11-06 11:08:41 +01:00
Alexei Podtelezhnikov
cc288e383b
Minor.
2018-11-04 22:09:16 -05:00
Alexei Podtelezhnikov
1f43affc09
* src/truetype/ttgxvar.c: Use enum definitions.
2018-11-04 13:11:16 -05:00
Alexei Podtelezhnikov
d95a12b88d
* src/truetype/ttgxvar.c (ft_var_apply_tuple): Adjust condition.
2018-11-03 23:02:58 -04:00
Alexei Podtelezhnikov
547f82f20e
* src/truetype/ttgxvar.c (ft_var_apply_tuple): Tracing tweaks.
2018-11-03 23:00:36 -04:00
Alexei Podtelezhnikov
ce3feb0b9d
Revert due to specs: [truetype] Speed up variation IUP.
...
This reverts commit 1e4496c54c
.
2018-11-03 22:43:21 -04:00
Alexei Podtelezhnikov
dfa86d65e5
Revert "[truetype] Speed up variation IUP."
...
This reverts commit 1e4496c54c
.
2018-11-03 22:36:52 -04:00
Alexei Podtelezhnikov
61d50756b6
* src/truetype/ttgxvar.c (ft_var_get_item_delta): Fixed logic.
...
Reported and tested by Behdad.
2018-11-02 20:42:25 -04:00
Shailesh Mistry
339c451ad0
[autofit] Prevent SEGV.
...
See
https://bugs.ghostscript.com/show_bug.cgi?id=697545
for more details on how the bug was found.
* src/autofit/afloader.c (af_loader_load_glyph): Propagate error
code.
2018-11-02 10:10:10 +01:00
Alexei Podtelezhnikov
1e4496c54c
[truetype] Speed up variation IUP.
...
* src/truetype/ttgxvar.c (tt_delta_interpolate): Separate trivial
snapping to the same position from true interpolation.
2018-10-31 23:17:33 -04:00
Alexei Podtelezhnikov
ba03310b5a
* src/type1/t1load.c (t1_set_mm_blend): Optimized.
2018-10-31 22:01:36 -04:00
Alexei Podtelezhnikov
300da33d61
* src/truetype/ttgxvar.c (ft_var_get_item_delta): Optimized.
2018-10-31 21:55:40 -04:00
Werner Lemberg
c13635ee4b
[base] Fix numeric overflow.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11080
* src/base/ftoutln.c (FT_Outline_Get_Orientation): Use `MUL_LONG'.
2018-10-29 21:25:10 +01:00
Werner Lemberg
ba62f9d8f5
[cff] Fix numeric overflow.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10988
* src/cff/cffparse.c (cff_parser_run)
[CFF_CONFIG_OPTION_OLD_ENGINE]: Use `NEG_LONG'.
2018-10-29 21:11:36 +01:00
Alexei Podtelezhnikov
acb19ed4e9
Comment on timestamp storage.
2018-10-28 14:19:33 -04:00
Alexei Podtelezhnikov
3e8ec291ff
[sfnt] Make `head' timestamps unsigned.
...
It's been more than 2^31 seconds since 1904.
* include/freetype/tttables.h (TT_Header): Change field types.
* src/sfnt/ttload.c (tt_face_load_generic_header): Updated.
2018-10-26 23:23:48 -04:00
Alexei Podtelezhnikov
d71f2bc159
Revert "Align FreeType with standard C memory management."
...
This reverts commit 877aa1b2cc
.
2018-10-26 22:52:25 -04:00
Werner Lemberg
bfe5329475
[psaux] Fix numeric overflow.
...
Triggered by
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11157
* src/psaux/cffdecode.c (cff_decoder_parse_charstrings) <cff_op_blend>
[CFF_CONFIG_OPTION_OLD_ENGINE]: Fix integer overflow.
2018-10-27 00:07:53 +02:00
Werner Lemberg
f56830ed40
Avoid endless loop while tracing ( #54858 ).
...
* src/type1/t1load.c (parse_buildchar): Guard tracing stuff with
FT_DEBUG_LEVEL_TRACE.
2018-10-20 07:27:47 +02:00
Werner Lemberg
0c4feb72cf
* CMakeLists.txt: Specify `RUNTIME DESTINATION'.
...
This is needed for DLL builds.
2018-10-17 11:25:32 +02:00
Werner Lemberg
428854931e
Minor.
2018-10-10 12:21:10 +02:00
Werner Lemberg
912e174c66
A missing Unicode cmap is not a fatal error.
...
This is a follow-up to the previous commit.
* src/cff/cffobjs.c (cff_face_init), src/sfnt/sfobjs.c
(sfnt_load_face), src/type1/t1objs.c (T1_Face_Init),
src/type42/t42objs.c (T42_Face_Init): Implement it.
2018-10-07 09:28:52 +02:00
Werner Lemberg
885f5b0b4e
Fix handling of FT_CONFIG_OPTION_ADOBE_GLYPH_LIST ( #54794 ).
...
* src/cff/cffcmap.c (cff_cmap_unicode_init), src/psaux/t1cmap.c
(t1_cmap_unicode_init), src/sfnt/ttcmap.c (tt_cmap_unicode_init):
Check `unicodes_init' field.
2018-10-07 09:03:05 +02:00
Werner Lemberg
0a178144e8
Whitespace.
2018-10-07 08:59:56 +02:00
Werner Lemberg
f262d15d0a
Minor comment improvement.
2018-10-07 07:40:37 +02:00
Werner Lemberg
9817571cc9
[ftgrays] Fix typo in stand-alone mode ( #54771 ).
...
* src/smooth/ftgrays.c (FT_THROW) [STANDALONE_ &&
FT_DEBUG_LEVEL_TRACE]: Fix call to `FT_ERR_CAT'.
2018-10-03 08:04:55 +02:00
Werner Lemberg
d280ae1e8c
[psaux] Fix segfault.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10768
* src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
<cff_op_callothersubr> [CFF_CONFIG_OPTION_OLD_ENGINE]: Check
argument.
2018-10-02 20:45:16 +02:00
Werner Lemberg
6b660f1215
[psaux] Fix numeric overflow.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10768
* src/psaux/cffdecode.c (cff_decoder_parse_charstrings) <cff_op_roll>
[CFF_CONFIG_OPTION_OLD_ENGINE]: Use NEG_INT.
2018-10-02 16:48:59 +02:00
Werner Lemberg
83fc524dfc
[pshinter] Handle numeric overflow.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10550
* src/pshinter/pshglob.c (psh_blues_snap_stem): Mask numeric
overflow.
2018-10-02 16:36:49 +02:00
Alexei Podtelezhnikov
877aa1b2cc
Align FreeType with standard C memory management.
...
* include/freetype/ftsystem.h: Include FT_TYPES_H.
(*FT_Alloc_Func, *FT_Realloc_Func): Use size_t for the size arguments.
* src/raster/ftmisc.h: Ditto.
* builds/amiga/src/base/ftsystem.c, builds/unix/ftsystem.c,
* builds/vms/ftsystem.c, src/base/ftsystem.c (ft_alloc, ft_realloc):
Use size_t for the size arguments.
* src/base/ftdbgmem.c (ft_mem_debug_alloc, ft_mem_debug_realloc): Use
FT_Offset, aka size_t, for the size arguments.
2018-09-27 21:17:36 -04:00
Alexei Podtelezhnikov
4500c701c2
Typo.
2018-09-26 22:04:50 -04:00
Werner Lemberg
efe7f64898
Typo.
2018-09-25 09:16:45 +02:00
Werner Lemberg
a9af691481
Fix handing of `FT_Bool'.
...
Before this commit we had code like
(FT_Bool)( globals->glyph_styles[gindex] & 0x8000)
Since `FT_Bool' is defined to be an `unsigned char', the code
evaluated to something like
(unsigned char)( 0x8532 & 0x8000)
which in turn expanded to
(unsigned char)( 0x8000)
and finally yielded 0x00 – i.e., false – not as expected.
Problem reported and analyzed by Tony Smith <tony.smith@macro4.com>.
* include/freetype/fttypes.h (FT_BOOL): Add a comparison against
zero so that we always have a Boolean expression.
*/*: Replace castings to `FT_Bool' with calls to `FT_BOOL' where
possible.
2018-09-25 09:10:09 +02:00
Alexei Podtelezhnikov
0f122fef34
[bdf] Speed up charmap access.
...
This makes FT_Get_Char_Index and FT_Get_Next_Char 4-5 times faster.
* src/bdf/bdfdrivr.c (bdf_cmap_char_{index,next}): Help binary search
with continuous prediction.
2018-09-23 21:46:26 -04:00
Alexei Podtelezhnikov
793a9ff9f5
* src/base/ftobjs.c (ft_glyphslot_reset_bimap): Another tweak.
...
This one should be clearer. When the rounded monochrome bbox collapses
we add a pixel that covers most if not all original cbox.
2018-09-22 14:38:00 -04:00
Alexei Podtelezhnikov
f26d57753f
* src/base/ftobjs.c (ft_glyphslot_reset_bimap): Further tweak.
2018-09-21 20:34:58 -04:00
Werner Lemberg
abd997aa7c
Improve documentation of `FT_LOAD_NO_RECURSE'.
2018-09-21 12:50:32 +02:00
Ben Wagner
335528e11e
Improve auto-hinter handling of bitmap fonts ( #54681 ).
...
For bitmap fonts, `FT_Load_Glyph' should either return an error or
not set the format to `FT_GLYPH_FORMAT_OUTLINE'. However, in this
case `FT_Load_Glyph' calls into the auto-hinter which calls back
into `FT_Load_Glyph' with `FT_LOAD_NO_SCALE' in the flags, which
marks the glyph as `FT_GLYPH_FORMAT_OUTLINE' with an empty path
(even though it doesn't have any path). It appears that the
auto-hinter should not be called when the face doesn't have
outlines. The current test for using the auto-hinter in
`FT_Load_Glyph' checks if the driver supports scalable outlines, but
not if the face supports scalable outlines.
* src/base/ftobjs.c (FT_Load_Glyph): Directly check whether we have
scalable outlines.
2018-09-21 11:27:50 +02:00
Werner Lemberg
c168cc3b1b
[raster] Fix disappearing vertical lines ( #54589 ).
...
* src/raster/ftraster.c (Vertical_Sweep_Span): Handle special case
where both left and right outline exactly pass pixel centers.
2018-09-21 11:09:27 +02:00
Werner Lemberg
493aa68f5c
[base] Some comments.
2018-09-21 08:32:22 +02:00