Werner Lemberg
b09e773591
* devel/ftoption.h: Synchronize with main `ftoption.h'.
2018-08-06 11:02:51 +02:00
Alexei Podtelezhnikov
f24dbb2811
[pcf] Use unsigned types.
...
* src/pcf/pcf.h (PCF_Encoding): Use unsigned `enc'.
* src/pcf/pcfdrivr.c (pcf_cmap_char_{index,next}): Ditto.
* src/pcf/pcfread.c (pcf_get_encodings): Use unsigned types.
2018-08-06 04:58:18 -04:00
Werner Lemberg
86e7385342
Minor comment formatting.
2018-08-06 10:24:08 +02:00
Werner Lemberg
720ae67f35
* src/truetype/ttgload.c (compute_glyph_metrics): Fix overflow.
...
Reported as
https://bugs.chromium.org/p/chromium/issues/detail?id=777151
2018-08-05 07:21:10 +02:00
Werner Lemberg
ced9c311f6
Ditto.
2018-08-04 07:03:57 +02:00
Werner Lemberg
be81acc4bf
* src/truetype/ttinterp.c (opcode_name): Fix typos.
2018-08-04 07:01:04 +02:00
Werner Lemberg
799d27b0b6
Fix clang warnings.
...
* src/base/ftoutln.c (FT_Outline_EmboldenXY): Fix type of
`orientation'.
* src/gxvalid/gxvcommn.c (gx_lookup_value_read): Fix signature.
* src/pcf/pcfread.c (pcf_get_encodings): Fix type of some variables.
Add cast.
* src/type1/t1load.c (parse_weight_vector): Fix cast.
2018-08-04 06:39:11 +02:00
Werner Lemberg
1897186fb7
* src/cid/cidtoken.h: Handle `XUID' keyword.
2018-07-31 10:48:07 +02:00
Werner Lemberg
8e57746c4b
[cid] Trace PostScript dictionaries.
...
* src/cid/cidload.c: Include FT_INTERNAL_POSTSCRIPT_AUX_H
(cid_load_keyword, cid_parse_font_matrix, parse_fd_array,
parse_expansion_factor, cid_parse_dict): Add tracing calls.
(parse_font_name): New function to trace `/FontName' keywords in
/FDArray dict.
(cid_field_records): Register `parse_font_name'.
2018-07-31 10:46:57 +02:00
Werner Lemberg
85e8bea4fd
Minor documentation improvement.
2018-07-31 10:42:21 +02:00
Werner Lemberg
578bcf103a
[cff] Fix typo.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9409
* src/cff/cffdrivr.c (cff_get_cid_from_glyph_index): Fix boundary
check.
2018-07-30 11:28:04 +02:00
Werner Lemberg
00968d8fd6
* src/pcf/pcfread.c (pcf_get_encodings): Another thinko.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9608
2018-07-29 10:22:59 +02:00
Alexei Podtelezhnikov
0f8aebfd51
* builds/unix/configure.raw: Minor.
2018-07-28 23:21:28 -04:00
Alexei Podtelezhnikov
2c3e895c74
[smooth] Fix Harmony memory management.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9501
* src/smooth/ftgrays.c (ft_smooth_render_generic): Restore buffer
after each rendering in case of failure.
2018-07-28 22:00:59 -04:00
Werner Lemberg
6e44d78cc1
[type1] Avoid segfaults with `FT_Get_PS_Font_Value'.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9610
* src/type1/t1driver.c (t1_ps_get_font_value): Protect against NULL.
2018-07-28 22:23:16 +02:00
Werner Lemberg
c9edca8ee9
[truetype] Make `TT_Set_MM_Blend' idempotent ( #54388 ).
...
* src/truetype/ttgxvar.c (tt_set_mm_blend): Correctly set
`face->doblend' if the current call to the function yields the same
blend coordinates as the previous call.
2018-07-27 10:44:01 +02:00
Werner Lemberg
d277bfc985
[psaux, type1]: More tracing improvements.
...
* src/psaux/psintrp.c (cf2_interpT2CharString): Trace skipped
outline commands.
* src/psaux/t1decode.c (t1_decoder_parse_charstring): Fix
missing case.
(t1_decoder_parse_metrics): Make tracing output more compact.
* src/type1/t1gload.c (T1_Compute_Max_Advance): Be less verbose.
(T1_Get_Advances): Add tracing.
2018-07-27 09:15:43 +02:00
Werner Lemberg
6e6acdcb0e
Document FT_Module_Class's `module_interface' field.
2018-07-26 07:22:43 +02:00
Werner Lemberg
8ed5346877
[psaux, type1] Trace PostScript dictionaries and other things.
...
The tracing of /Encoding, /Subrs, and /Charstrings is rudimentary
right now.
* src/psaux/psobjs.c (ps_parser_load_field,
ps_parser_load_field_table): Add tracing calls.
* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Make tracing
output more compact.
* src/type1/t1gload.c (T1_Compute_Max_Advance, T1_Get_Advances): Add
tracing messages.
* src/type1/t1load.c (parse_blend_axis_types,
parse_blend_design_positions, parse_blend_design_map,
parse_weight_vector, t1_load_keyword, t1_parse_font_matrix,
parse_encoding, parse_subrs, parse_charstrings, T1_Open_Face): Add
tracing calls.
* src/type1/t1objs.c (T1_Face_Init): Add tracing call.
* src/sfnt/sfobjs.c (sfnt_init_face): Make tracing message more
verbose.
2018-07-25 22:07:22 +02:00
Werner Lemberg
580c94d8f7
Fix minor ASAN run-time warnings.
...
* src/base/ftutil.c (ft_mem_alloc, ft_mem_realloc): Only call
`FT_MEM_ZERO' if we actually have a buffer.
(ft_mem_dup): Only call `ft_memcpy' if we actually have a buffer.
2018-07-25 07:03:07 +02:00
Alexei Podtelezhnikov
4b97ab98a8
[build] Fortify dllexport/dllimport attributes (#53969,#54330).
...
We no longer use predefined _DLL, which can be defined for static
builds too with /MD. We use DLL_EXPORT and DLL_IMPORT instead,
following libtool convention.
* CMakeLists.txt [WIN32], builds/windows/vc2010/freetype.vcxproj:
Define DLL_EXPORT manually.
* include/freetype/config/ftconfig.h, builds/unix/ftconfig.in,
builds/vms/ftconfig.h, builds/windows/vc2010/index.html,
src/base/ftver.rc: /_DLL/d, s/FT2_DLLIMPORT/DLL_IMPORT/.
2018-07-24 23:01:34 -04:00
Werner Lemberg
d8ea52dee5
[type1] Check relationship between number of axes and designs.
...
For Multiple Masters fonts We don't support intermediate designs;
this implies that
number_of_designs == 2 ^^ number_of_axes
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9557
* src/type1/t1load.c (T1_Open_Face): Ensure above constraint.
(T1_Get_MM_Var): Remove now redundant test.
2018-07-24 23:03:06 +02:00
Hin-Tak Leung
71e29fe1c9
[truetype] Match ttdebug's naming of instruction mnemonics.
...
* src/truetype/ttinterp.c: The form used in ttdebug,
"MDRP[G,B,W,?]", etc., is slightly more readable than
"MDRP[00,01,02,03]".
2018-07-24 10:04:23 +02:00
Werner Lemberg
ff1c28f6c0
* src/pcf/pcfread.c (pcf_get_encodings): Thinko.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9561
2018-07-24 09:59:23 +02:00
Werner Lemberg
b98133a4e9
* src/pcf/pcfread.c (pcf_get_encodings): Check index of defaultChar.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9527
2018-07-22 13:06:20 +02:00
Werner Lemberg
9be385c94d
* src/pcf/pcfread.c (pcf_load_font): Fix number of glyphs.
...
This is an oversight of the module change 2018-07-21.
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9524
2018-07-22 12:49:25 +02:00
Werner Lemberg
a5acdce100
[cid] Sanitize `BlueShift' and `BlueFuzz'.
...
This code is taken from the type1 module.
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9510
* src/cid/cidload.c (parse_fd_array): Set some private dict default
values.
(cid_face_open): Do the sanitizing.
Fix some tracing messages.
2018-07-22 12:11:52 +02:00
Werner Lemberg
5434faadf4
Fix links.
...
Reported by Ankit and Nikhil.
2018-07-22 07:34:53 +02:00
Werner Lemberg
9395558533
Minor comment improvement.
2018-07-21 23:46:19 +02:00
Werner Lemberg
cba72a0b0f
[pcf] Fix handling of the undefined glyph.
...
This change makes the driver use the `defaultChar' property of PCF
files.
* src/pcf/pcf.h (PCF_FaceRec): Change type of `defaultChar' to
unsigned.
* src/pcf/pcfread.c (pcf_get_encodings): Read `defaultChar' as
unsigned.
Validate `defaultChar'.
If `defaultChar' doesn't point to glyph index zero, swap glyphs with
index zero and index `defaultChar' and adjust the encodings
accordingly.
* src/pcf/pcfdrivr.c (pcf_cmap_char_index, pcf_cmap_char_next,
PCF_Glyph_Load): Undo change from 2002-06-16 which always enforced
the first character in the font to be the default character.
2018-07-21 23:45:32 +02:00
Werner Lemberg
a2370f21b5
Improve stream extraction macro documentation.
2018-07-21 07:38:13 +02:00
Armin Hasitzka
154832d466
Move the legacy fuzz target to the `freetype-testing' repository.
...
It can now be found at
https://github.com/freetype/freetype2-testing/tree/master/fuzzing/src/legacy
* src/tools/ftfuzzer: Remove this folder and its contents from the
repository.
2018-07-20 19:32:13 +02:00
Werner Lemberg
14032290bf
[cff] Avoid left-shift of negative numbers ( #54322 ).
...
* src/cff/cffgload.c (cff_slot_load): Use multiplication.
2018-07-20 06:44:13 +02:00
Werner Lemberg
8f09eb5ce0
Allow FT_ENCODING_NONE for `FT_Select_Charmap'.
...
This is a valid encoding tag for BDF, PCF, and Windows FNT, and
there is no reason to disallow it for these formats.
* src/base/ftobjs.c (FT_Select_Charmap): Implement it.
2018-07-17 21:45:24 +02:00
Werner Lemberg
9e69987aaa
* src/pcf/pcfread.c (pcf_get_encodings): Trace `defaultChar'.
2018-07-17 19:54:25 +02:00
Armin Hasitzka
fda356b742
* include/freetype/internal/ftcalc.h: Add macros for handling
...
harmless over-/underflowing `FT_Int' values.
* src/sfnt/sfdriver.c (fixed2float): Fix negation of
`(int)(-2147483648)'.
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9423
2018-07-16 18:45:23 +02:00
Werner Lemberg
839cb404cf
* src/truetype/ttgxvar.c (tt_set_mm_blend): Fix off-by-one error.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9412
2018-07-16 05:47:27 +02:00
Werner Lemberg
9f15370e56
* src/base/ftoutln.c (FT_Outline_Get_Orientation): Init `cbox'.
...
Taken from patch #9667 , written by Steve Langasek
<vorlon@debian.org>.
This fixes a build failure (most probably a bug in gcc) on ppc64el
when building with -O3.
2018-07-12 07:31:26 +02:00
Werner Lemberg
b532d7ce70
Fix typo ( #54238 ).
...
* src/base/ftcolor.c (FT_Palette_Set_Foreground_Color)
[!TT_CONFIG_OPTION_COLOR_LAYERS]: Add return value.
2018-07-05 23:13:35 +02:00
Werner Lemberg
0767d5362f
Adjust table size comparisons ( #54242 ).
...
* src/sfnt/ttcpal.c (tt_face_load_cpal): Implement it.
2018-07-05 23:05:53 +02:00
Werner Lemberg
6ceeb87f5d
Fix more 32bit issues ( #54208 )
...
* src/cff/cffload.c (cff_blend_build_vector): Convert assertion into
run-time error.
* src/truetype/ttgxvar.c (ft_var_to_normalized): Protect against
numeric overflow.
2018-07-05 22:31:10 +02:00
Werner Lemberg
29f05fd02d
Fix 32bit build warnings ( #54239 ).
...
* src/base/ftbitmap.c (FT_Bitmap_Blend): Add casts to avoid signed
vs. unsigned comparisons.
* srb/sfnt/ttcolr.c (tt_face_get_colr_layer): Ditto.
2018-07-04 11:49:47 +02:00
Jeff Carey
d9d300ab6b
* src/psnames/psmodule.c (ps_unicodes_init): Fix alloc debugging.
2018-07-02 22:27:57 +02:00
Werner Lemberg
396051daee
s/xxx specific foo/xxx-specific foo/.
2018-07-02 15:52:36 +02:00
Werner Lemberg
7edc937fe6
s/palette_types/palette_flags/.
...
Suggested by Behdad.
2018-07-02 11:50:04 +02:00
Werner Lemberg
4e3b2473d8
Make `FT_Get_Color_Glyph_Layer' return FT_Bool.
...
* include/freetype/freetype.h, src/base/ftobjs.c
(FT_Get_Color_Glyph_Layer, FT_Render_Glyph_Internal): Updated.
* include/freetype/internal/sfnt.h (TT_Get_Colr_Layer_Func),
src/sfnt/ttcolr.h, src/sfnt/ttcolr.c (tt_face_get_colr_layer):
Updated.
2018-07-02 11:41:44 +02:00
Werner Lemberg
f6ccb524af
* src/base/ftobjs.c (FT_Get_Color_Glyph_Layer): Guard SFNT function.
...
Reported by Behdad.
2018-07-01 12:31:57 +02:00
Alexei Podtelezhnikov
1fc776b5f1
* src/base/fttrigon.c (FT_Tan): Improve accuracy.
...
(FT_Vector_Rotate): Simplify.
2018-06-28 21:42:26 -04:00
Alexei Podtelezhnikov
4f11209f5c
* src/base/ftobjs.c (FT_Set_Charmap): Robustify.
2018-06-28 21:31:35 -04:00
Werner Lemberg
207ca38fb5
[truetype] Fix memory leak.
...
* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Add initializers.
Fix typo in `goto' destination.
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9071
2018-06-25 18:50:00 +02:00