kc3-lang/freetype/src

Branch :


Log

Author Commit Date CI Message
53be1753 2020-07-28 07:33:40 Fix `-Wformat' compiler warnings. * src/*: Fix format specifiers. * builds/unix/ftsystem.c (FT_Stream_Open): Ditto.
8cfc41ae 2020-07-25 12:23:22 Fix `-Wformat' compiler warnings. Problem reported by Priyesh kumar <priyeshkkumar@gmail.com> * src/base/ftoutln.c (FT_Outline_Decompose): Fix number of arguments to tracing macro. * src/bdf/bdfdrivr.c (bdf_cmap_char_next, bdf_get_bdf_property): Ditto. * src/cache/ftcbasic.c (ftc_basic_family_get_count): Ditto. Reformulate message. * src/pcf/pcfdrivr.c (pcf_get_bdf_property): Ditto. * src/sfnt/sfwoff2.c (woff2_open_font): Ditto. Trace table offset, too. * src/truetype/ttgxvar.c (ft_var_apply_tuple): Ditto.
b6183ea3 2020-07-23 13:03:22 * src/sfnt/sfwoff2.c (woff2_decompress): Fix compiler warning. Reported by Hin-Tak.
96fb73ef 2020-07-07 16:58:14 Fix clang warnings. * include/freetype/internal/autohint.h (FT_DECLARE_AUTOHINTER_INTERFACE): New macro. * src/autofit/afmodule.h: Use it to declare `af_autofitter_interface'. * include/freetype/internal/ftobjs.h (FT_DECLARE_GLYPH): New macro. * src/base/ftbase.h: Use it to declare `ft_bitmap_glyph_class' and `ft_outline_glyph_class'. * src/base/ftglyph.c: Include `ftbase.h'. * src/cff/cffparse.c (cff_parser_run): Fix type of `t2_size'. * src/pcf/pcfdrivr.c (pcf_cmap_char_next): Fix type of `result'. * src/psaux/psauxmod.c (psaux_module_class): Use `FT_DEFINE_MODULE'. * src/psaux/psauxmod.h: Declare `afm_parser_funcs', `t1_cmap_classes', `cff_decoder_funcs', and `psaux_module_class'. * src/pshinter/pshmod.c: Include `pshmod.h'. * src/sfnt/sfwoff2.c (ROUND4, WRITE_SHORT): Fix implicit sign conversion. (compute_ULong_sum): Fix return type. Fix implicit sign conversion. (store_points): Fix type of `last_flag', `repeat_count', and `flag'. Use casts to avoid warnings. (reconstruct_glyf): Fix implicit sign conversion. Use cast to avoid warning. (get_x_mins): Fix implicit sign conversion. * src/sfnt/ttcmap.c: Undef `TTCMAPCITEM'. * src/sfnt/ttcmap.h: Define `TTCMAPCITEM' and include `ttcmapc.h' to declare cmap classes. * src/smooth/ftsmooth.c (ft_smooth_overlap_spans): Use cast. * src/truetype/ttinterp.c (Ins_MIAP): Fix typo.
0f35b042 2020-07-06 10:56:36 [build] Really fix multi and C++ builds. The following builds were still failing due to previous changes: make multi make multi CC="c++" make CC="c++" This patch fixes the issues, which were missing includes to get the right macro definitions in multi-build mode. Also, `FT_UNUSED' is actually used by third-party code, so move it back to `public-macros.h' to avoid breaking it. * include/freetype/config/public-macros.h (FT_EXPORT): Remove special definition for C++. (FT_UNUSED): Define here instead of... * include/freetype/config/compiler-macros.h: ... here. (FT_FUNCTION_DECLARATION): Remove special definition for C++. (FT_LOCAL_ARRAY_DEF): Fix definition. * src/cache/ftccback.h, src/lzw/ftzopen.h, src/gxvalid/gxvmort.h, src/gxvalid/gxvmorx.h: Add `FT_BEGIN_HEADER' and `FT_END_HEADER'.
cb4a943b 2020-07-06 10:56:36 [build] Fix multi and C++ builds. The following builds were failing due to previous changes: make multi make multi CC="c++" * include/freetype/config/ftconfig.h: Remove `FT_END_HEADER'. * include/freetype/config/ftheader.h (FT_BEGIN_HEADER, FT_END_HEADER): Protect against redefinition. * src/cache/ftccache.h, src/cache/ftcmru.h, src/pcf/pcfutil.h, src/psaux/pserror.h, src/psaux/psft.h, src/psaux/psstack.h, src/sfnt/woff2tags.h: Include `compiler-macros.h'. * src/sfnt/woff2tags.c: Include `woff2tags.h'.
2eb8f886 2020-07-06 09:21:03 [psaux] Improve `t1_decoder_parse_metrics' (#58646). * src/psaux/t1decode.c (t1_decoder_parse_metrics): Copy corresponding code from old engine's `t1_decoder_parse_charstrings' function to handle `op_callsubr' and `op_return'.
bb66c8d8 2020-07-02 11:09:57 [build] Split off more stuff from `ftconfig.h'. * builds/unix/ftconfig.h.in, builds/vms/ftconfig.h, include/freetype/config/ftconfig.h: Split off macro definitions required by the FreeType API headers to... * include/freetype/config/public-macros.h: ...this new file. * builds/unix/ftconfig.h.in, builds/vms/ftconfig.h, include/freetype/config/ftconfig.h: Split off macro definitions used by the library but not to be exposed to clients to... * include/freetype/config/compiler-macros.h: ...this new file. * include/freetype/internal/*.h, src/raster/ftraster.h: Include `compiler-macros.h' where needed.
3bb512bc 2020-07-03 22:29:34 [smooth] Introduce direct oversampling for overlaps. This implements oversampling to metigate artifacts in pixels partially covered by overlapping contours. It turns out that the 4x4 oversampling is sufficient but, at least, quadruples the rendering time. The outline has to set FT_OUTLINE_OVERLAP to use this method. * include/freetype/ftimage.h (FT_OUTLINE_OVERLAP): New flag. * src/smooth/ftsmooth.c (ft_smooth_render): Check it to... (ft_smooth_raster_overlap): ... inflate outline and set up direct rendering for oversampling with... (ft_smooth_overlap_spans): ... new span function that integrates them.
19d39f43 2020-07-03 09:17:22 [smooth] Use direct rendering mode in Harmony. Instead of rendering 3 bitmaps side by side and reshuffling, we use direct rendering to deliver the bitmaps on each third byte. * src/smooth/ftsmooth.c (ft_smooth_raster_lcd) [!FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Set up direct mode with... (ft_smooth_lcd_spans): ... new span function.
2d67511a 2020-07-03 09:02:09 [smooth] Separate LCD paths from gray rendering. This makes `ft_smooth_render' a lot smaller and easier to follow. It also cleanly separates Harmony and ClearType-style LCD rendering algorithms. Now I only wish to move LCD filtering and geometry from FT_Library to FT_Renderer. * src/smooth/ftsmooth.c (ft_smooth_render): Move LCD code from here... (ft_smooth_raster_lcd, ft_smooth_raster_lcdv): ... to here. [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Reorganize #ifdef's.
a4434747 2020-06-20 05:31:34 [cff] Fix handling of `style_name == NULL' (#58630). * src/cff/cffobjs.c (cff_face_init): If a call to `cff_strcpy' fails by returning NULL in `cff_face_init', `remove_style' is still called. This means that the NULL pointer is dereferenced, causing a crash.
f594ffdc 2020-06-19 18:55:49 [cff] Fix another two memory leaks (#58629). * src/cff/cffobjs.c (cff_size_init): If a call to `funcs->create' fails to allocate one of the `internal->subfont' variables, make sure to free `internal->topfont' and any successfully allocated subfonts.
2e2f3cb5 2020-06-19 16:29:07 [psaux] Fix memory leak (#58626). * src/psaux/psstack.c (cf2_stack_init): If `cf2_stack_init' fails to allocate the stack, return error early.
09b98060 2020-06-19 16:21:08 Fix memory leak (#58624). * src/base/ftobjs.c (FT_New_Size): Avoid trying to free `size->internal`, unless `size' has been allocated. This mistake appeared in the fix for 58611.
6e722f2e 2020-06-19 08:39:23 [base] Rework d1180b5f9598 until further notice. * src/base/ftoutln.c (FT_Outline_Get_Orientation): Reject large outlines.
8ed5a247 2020-06-19 10:35:57 [cff, cid] Fix segfaults in case of error (#58621). * src/cff/cffobjs.c (cff_slot_done), src/cid/cidobjs.c (cid_slot_done): If `ft_glyphslot_init' fails to allocate `internal', then the class' `done_slot' callback (called by `ft_glyphslot_done') must not dereference the pointer to `internal'.
d1180b5f 2020-06-19 08:18:26 [base] Fix UBSAN error. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=23166 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Avoid values larger than 32 bits.
4d364b68 2020-06-19 05:41:37 [woff2] Fix segfault. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=23402 * src/sfnt/sfwoff2.c (get_x_mins): Check whether `loca' table exists.
d924c5cf 2020-06-19 04:14:39 [sfnt] Support Intel compilers. * src/sfnt/pngshim.c (premultiply_data): Intel compilers do not currently support `__builtin_shuffle'.
a4429959 2020-06-18 15:12:03 [base] Fix memory leak (#58611). * src/base/ftobjs.c (FT_New_Size): When the call to `clazz->init_size' fails, make sure to free `size->internal'.
575b78d9 2020-06-18 15:12:03 [cff] Fix memory leak (#58610). * src/cff/cffobjs.c (cff_size_init): When the call to `funcs->create' fails, make sure to free `internal'.
74cebeae 2020-06-19 03:41:12 * src/cff/cffload.c (cff_index_get_pointers): Rename `t' to `tbl'.
c8cd139c 2020-06-18 13:46:37 [cff] Free table upon error allocating other data (#58609). * src/cff/cffload.c (cff_index_get_pointers): When new_bytes fails to allocate, make sure to free the table. Do the same for both allocations if there is a later error.
7438235b 2020-06-17 15:12:30 woff2tags.h: Fix copyright year.
16586859 2020-06-13 21:15:45 Remove redundant inclusion of `ft2build.h'. * */*: Remove `#include <ft2build.h>' where possible. * include/freetype/freetype.h: Remove cpp error about missing inclusion of `ft2build.h'.
e1339133 2020-06-08 13:31:55 Make macros for header file names optional. We no longer have to take care of the 8.3 file name limit; this allows us (a) to introduce longer, meaningful file names, and (b) to avoid macro names in `#include' lines altogether since some compilers (most notably Visual C++) doesn't support this properly. */*: Replace #include FOO_H with #include <freetype/foo.h> or something similar. Also update the documentation.
9e6e903c 2020-06-02 17:14:54 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Trace number of cmaps.
4eee1340 2020-05-18 09:16:12 Remove Jamfile files from the tree. These have not been used in a very, very long time, so better remove them. A corresponding patch will be submitted to the `freetype2-demos' repository. * src/Jamfile, src/*/Jamfile, Jamrules: Delete.
3f70e6d2 2020-05-12 00:38:46 [smooth] Turn on LCD filtering during FreeType initialization. * src/smooth/ftsmooth.c (ft_smooth_init): Enable LCD filtering. * include/freetype/ftlcdfil.h: Document it, remove patent warnings. * include/freetype/freetype.h (FT_Render_Mode): Updated. * include/freetype/config/ftoption.h, devel/ftoption.h [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Do not mention patents.
652f8863 2020-05-11 23:30:37 [smooth] Stop using dedicated LCD modules and classes. The LCD modules were never truly independent. They mostly served as a way to disable patented LCD rendering, which is no longer necessary. The `smooth' module now handles LCD modes as well. * src/smooth/ftsmooth.c (ft_smooth_lcd_renderer_class. ft_smooth_lcdv_renderer_class): Deleted. (ft_render_smooth): Reworked from `ft_render_smooth_generic'. * src/smooth/ftsmooth.h: Remove dedicated LCD classes. * src/smooth/module.mk: Remove dedicated LCD modules. * include/freetype/config/ftmodule.h: Ditto. * builds/amiga/include/config/ftmodule.h: Ditto. * include/freetype/ftmodapi.h: Do not mention LCD modules.
132f19b7 2020-05-05 20:14:14 * Version 2.10.2 released. ========================== Tag sources with `VER-2-10-2'. * docs/VERSION.TXT: Add entry for version 2.10.2. * README, Jamfile (RefDoc), src/base/ftver.rc, builds/windows/vc2010/index.html, builds/windows/visualc/index.html, builds/windows/visualce/index.html, builds/wince/vc2005-ce/index.html, builds/wince/vc2008-ce/index.html, docs/freetype-config.1: s/2.10.1/2.10.2/, s/2101/2102/. * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2. * builds/unix/configure.raw (version_info): Set to 23:2:17. * CMakeLists.txt (VERSION_PATCH): Set to 2. * docs/CHANGES: Updated.
a45da253 2020-05-08 10:59:37 * src/truetype/ttinterp.c (TT_RunIns): Adjust loop counter (#58319). The font that exceeds the old limit is Icono Regular, version 1.00000.
7a019a63 2020-04-04 14:06:37 [woff2] Return if single stream operation fails. * src/sfnt/sfwoff2.c (get_x_mins): Do it. * src/sfnt/woff2tags.c: Remove unused include.
6a431038 2020-03-02 18:21:27 [gzip] Support `gzip' encoded header conditionally. In order to support `gzip' encoded header the call to `inflateInit2' was modified in commit 6a92b1fadde26477a9179. However, this code breaks with the outdated internal version of zlib. This is a temporary fix to conditionally support `gzip' encoded header whenever a system installation of zlib is being used. Problem report in https://lists.nongnu.org/archive/html/freetype-devel/2020-02/msg00023.html * src/gzip/ftgzip.c (FT_Gzip_Uncompress): Change the the call to `inflateInit2' depending on whether the system installation is being used or the internal copy.
11975fe9 2020-02-29 20:18:00 Fix state of `FT_Face' for buggy `gvar' tables (#57923). By resetting the blend as implemented with this commit fonts with invalid `gvar' tables may keep calling into `ft_var_load_gvar' from `tt_set_mm_blend' and failing, but the font was invalid anyway and we want to keep seeing the failure in `tt_set_mm_blend'. * src/truetype/ttgxvar.c (ft_var_load_gvar): Calculate length of offset array once. Allocate arrays after `FT_FRAME_ENTER' (extra check before allocating and avoid needing to free array later if error entering frame). Always call `FT_FRAME_EXIT'. Consistently set counts immediately after array initialized. Reset the blend (particularly `blend->glyphoffsets') on failure.
216e0776 2020-02-28 07:43:00 [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.
5b1a37af 2020-02-25 11:08:11 Fix for CFF space glyph regression (#57541). * src/psaux/psft.c (cf2_decoder_parse_substrings): Replace early-out with FT_OFFSET.
fa147af4 2020-02-22 18:30:46 [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.
6e49dff0 2020-02-21 20:57:52 [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.
49f3394d 2020-02-19 12:56:49 [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.
8930cc96 2020-02-12 18:25:03 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Ignore version (#57708).
4a19a53d 2020-02-04 13:37:19 * src/truetype/ttinterp.c (TT_RunIns): Adjust loop counter (#57732). The font that exceeds the old limit is Constantine, version 1.001.
e5038be7 2020-01-19 17:05:19 Update all copyright notices.
fd03cf88 2020-01-04 19:28:36 [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.
a99a8e28 2020-01-03 18:09:12 [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.
10d8de75 2019-12-30 11:22:04 [truetype] Fix UBSan warning on offset to nullptr (#57501). * src/truetype/ttinterp.c (Ins_CALL): Fail if `exc->FDefs' is null.
a4df0373 2019-12-31 16:04:01 [woff2] Allow bitmap-only fonts (#57394). * src/sfnt/sfwoff2.c (reconstruct_font): Fix test for `glyf' and `loca' tables.
8cee1dde 2019-12-17 14:12:38 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'.
7e1b39f6 2019-12-16 11:07:58 [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'.
0c14a3ad 2019-12-14 00:04:01 [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'.
2c9a2d58 2019-12-13 23:56:25 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.
11d4ce23 2019-12-09 12:40:42 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'.
dfc9a049 2019-12-05 08:44:30 * src/truetype/ttinterp.c (TT_RunIns): Use `FT_OFFSET'. Reported as https://bugs.chromium.org/p/chromium/issues/detail?id=1030614
551bd3a9 2019-12-03 11:52:48 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'.
4270e9f3 2019-11-27 11:38:45 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'.
d4f9c249 2019-11-23 11:25:28 [base] Really fix #57194. Apply accidentally missed second part of patch. * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Call `FT_GlyphLoader_CreateExtra'.
9df460b6 2019-11-23 11:09:40 [truetype] Avoid sanitizer warning (#57289). * src/truetype/ttpload.c (tt_face_get_device_metrics): Use `FT_OFFSET'.
c67b9a1c 2019-11-23 11:01:18 [truetype] Fix integer overflow (#57287). * src/truetype/ttgload.c (compute_glyph_metrics): Use `SUB_LONG'.
3cb7b3f7 2019-11-23 10:54:51 [sfnt] Avoid sanitizer warning (#57286). * src/sfnt/ttcmap.c (tt_face_build_cmaps): Avoid possible `NULL + offset' computation. Tag `table' as `const'.
2d1d60aa 2019-11-23 10:42:04 [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.
9b017959 2019-11-23 10:07:48 [sfnt] Ensure OTTO fonts have tables (#57285). * src/sfnt/ttload.c (tt_face_load_font_dir): Add test.
07c8d8bb 2019-11-23 10:00:02 Minor fixes for recent compilers. * src/gzip/infutil.h (inflate_mask): Add `const'. * src/autofit/aflatin2.c: Include `ft2build.h'.
b75031a2 2019-10-25 21:29:13 * 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
3b8bc65c 2019-10-22 08:07:05 * 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
90a30f15 2019-10-10 22:04:50 * src/sfnt/pngshim.c (premultiply_data): Optimize for __SSE__ only.
545a481a 2019-10-10 13:11:06 * src/sfnt/sfwoff2.c (reconstruct_glyf): Check `triplet_size'. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18108
1e9229f0 2019-10-09 15:37:19 [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.
5a1a79c0 2019-10-08 11:12:18 [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.
1167bff3 2019-10-06 23:22:34 * src/sfnt/sfwoff2 (reconstruct_glyf): Fix reallocation. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18046
0fcf486e 2019-10-06 21:12:42 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.
1f4e5bcb 2019-10-03 21:07:16 * src/sfnt/sfwoff2 (reconstruct_font): Fix reallocation. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17966
c912690d 2019-09-30 22:45:34 * src/base/ftstroke.c (ft_stroker_inside): Speed up.
94815d6e 2019-10-01 00:15:25 * src/sfnt/sfwoff2 (woff2_open_font): Initialize `woff2.ttc_fonts'. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17804
839a0236 2019-09-30 07:41:57 * src/sfnt/sfwoff2.c (reconstruct_font): Fix memory leak. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17812
12696dcf 2019-09-30 07:27:55 [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.
ba06adaf 2019-09-29 13:29:21 [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'.
c37a5014 2019-09-28 07:42:34 * src/sfnt/sfwoff2.c (woff2_open_font): Fix sanity check. Correct thinkos in patch from 2019-09-01.
2bf603bd 2019-09-28 07:37:24 [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'.
b39576f9 2019-09-27 19:18:49 * src/base/ftstroke.c (ft_stroker_cap): Speed up caps.
432efa25 2019-09-25 21:50:16 * src/base/ftstroke.c (ft_stroker_outside): Speed up clipped miter. * include/freetype/ftstroke.h: Wordsmith miter docs.
db4083fd 2019-09-25 08:48:26 * 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
4881f75b 2019-09-23 22:57:00 * src/base/ftstroke.c (ft_stroke_border_arcto): Speed up calculations.
5327092b 2019-09-20 06:30:28 [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'.
04ebb2a0 2019-09-17 19:46:59 * src/otvalid/otvcommon.c (otv_Coverage_get_last): Guard `count'. Problem reported by Marc Schönefeld <marc.schoenefeld@gmx.org>.
99f23d6f 2019-09-17 13:22:28 * src/sfnt/sfwoff2.c (woff2_open_font): Check table index. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17100
3fa35aa4 2019-09-03 21:10:20 * src/sfnt/sfwoff2.c (compute_ULong_sum): Fix undefined shift. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=16933
543a3b93 2019-09-01 23:03:09 * src/sfnt/sfwoff2.c (woff2_open_font): Add sanity check. Don't trust `totalSfntSize' unconditionally. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=16893
cbee985a 2019-08-27 15:08:15 [woff2] Don't use `FT_UInt64' (#56815). * src/sfnt/sfwoff2.c (woff2_open_font): Use `FT_UInt32' for `file_offset'. This fixes builds on platforms where `FT_LONG64' is not defined while still being sufficient to store a file offset.
59415658 2019-08-27 14:07:14 [truetype] Prevent crash in `TT_Set_Named_Instance' (#56813). * src/truetype/ttgxvar.c (TT_Set_Named_Instance): Fix error handling.
eef5c1dd 2019-08-27 10:43:32 [woff2] Fix compiler warnings. * src/sfnt/sfwoff2.c (read_num_hmetrics): Remove unused argument `table_len'. Update caller. (triplet_decode, compute_bbox, store_loca, reconstruct_glyf): Make `i' variable unsigned. (reconstruct_glyph): Remove condition which is always false. (reconstruct_html): Removed unused argument `transformed_size'. Update caller. * src/sfnt/woff2tags.c (woff2_known_tags): Remove condition which is always false.
60c52f0e 2019-08-27 10:08:01 [woff2] Formatting; some comments.
86803acd 2019-08-22 16:46:03 [woff2] Check whether known tag is in array bounds. If table tag is not 0x3f, we expect a value between 0 and 62. If this is not the case, exit with errors. * src/sfnt/sfwoff2/c: Check whether table tag makes sense. * src/sfnt/woff2tags.c: Return 0 if tag is out of bounds.
d2681a49 2019-08-21 20:21:02 [woff2] More formatting and documentation. * include/freetype/internal/wofftypes.h, src/sfnt/sfwoff2.c: Implement formatting changes suggested as https://lists.nongnu.org/archive/html/freetype-devel/2019-08/msg00052.html
1a103015 2019-08-17 14:57:59 * src/sfnt/sfwoff2.c: Improve trace comments. Adjust tracing levels for comments, and more formatting.
97616704 2019-08-14 17:39:55 [woff2] Formatting. * src/sfnt/sfobjs.c, src/sfnt/sfwoff2.c: Better formatting.
2a23dc7f 2019-08-14 02:36:27 [woff2] Support `hmtx' reconstruction when `glyf' is untransformed. `reconstruct_hmtx' requires `info->x_mins' and `info->num_glyphs' to reconstruct the hmtx table. In case glyf is not transformed, we call `get_x_mins' which does the necessary work. * src/sfnt/sfwoff2.c (get_x_mins): New function. (reconstruct_font): Call get_x_mins.
5367e0ca 2019-08-05 01:53:00 [sfnt] Support `face->num_faces' for WOFF2 fonts. Set correct value of `face->num_faces' for WOFF2 fonts. This is being handled separately because we only load the tables for the requested font face in `woff2_open_font' and create a single-face sfnt stream. The full discussion is at: https://lists.gnu.org/archive/html/freetype-devel/2019-08/msg00000.html * src/sfnt/sfobjs.c (sfnt_open_font): Add parameter `woff2_num_faces'. (sfnt_init_face): Introduce variable `woff2_num_faces', and change `face->root.num_faces' if `woff2_num_faces' is set. * src/sfnt/sfwoff2.c (woff2_open_font): Validate requested face index and handle negative face indices. * src/sfnt/sfwoff2.h (woff2_open_font): Add parameter `num_faces' to declaration.
bb7668d7 2019-07-28 19:38:05 [woff2] Improve memory and error handling. Free up memory after use, and improve error handling. * src/sfnt/sfwoff2.c (reconstruct_font, woff2_open_font): Implement changes.
1e020768 2019-07-18 01:50:16 [woff2] Avoid too many calls to `FT_REALLOC'. We do this by using `totalSfntSize' as an initial reference, and extending the buffer when required. This reduces rendering time considerably. * include/freetype/internal/wofftypes.h (WOFF2_HeaderRec): Add `totalSfntSize', rename `total_sfnt_size' to `actual_sfnt_size'. * src/sfnt/sfwoff2.c (write_buf): Add parameter `dst_size' to keep track of and update total size of stream. (WRITE_SFNT_BUF, WRITE_SFNT_BUF_AT): Modify macros accordingly. (pad4, store_loca, reconstruct_glyf, reconstruct_hmtx, reconstruct_font): Update parameters to accept `sfnt_size'. (woff2_open_font): Add variable `sfnt_size'. Use WOFF2 header field `totalSfntSize' as initial reference (if value makes sense) and allocate `totalSfntSize' bytes for the sfnt stream. `write_buf' handles reallocation if and when required. Also resize the stream to `actual_sfnt_size' after reconstruction.