ChangeLog


Log

Author Commit Date CI Message
Werner Lemberg a8a54c30 2015-12-05T13:26:44 * src/autofit/afblue.dat: Separate blue zone characters with spaces. Another preparation for character cluster support. * src/autofit/afblue.c, src/autofit.afblue.h: Regenerated.
Werner Lemberg 453722db 2015-12-05T13:20:30 * src/tools/afblue.pl (convert_ascii_chars): Don't ignore spaces. Instead, reduce multiple spaces to a single one. We need this later for supporting character clusters in `afblue.dat'.
Werner Lemberg f7e6d51a 2015-12-05T13:08:45 * src/autofit/afblue.hin (GET_UTF8_CHAR): Use `do...while(0)'. * src/autofit/afblue.h: Regenerated.
Werner Lemberg 53696f03 2015-12-05T07:44:16 * src/autofit/afwarp.c: s/INT_MIN/FT_INT_MIN/.
Werner Lemberg a4154738 2015-12-03T07:49:46 * builds/unix/install.mk (install): Remove stale `ft2build.h'.
Werner Lemberg 5b05bc66 2015-12-01T12:09:02 [type1] Avoid dangling pointer (#46572). * src/type1/t1afm.c (T1_Read_Metrics): Properly reset `face->afm_data'.
Alexei Podtelezhnikov f8c20577 2015-11-28T22:43:33 * include/freetype/ftlcdfil.h: Documentation tweak.
Werner Lemberg 66cf29b1 2015-11-28T19:08:05 * Version 2.6.2 released. ========================= Tag sources with `VER-2-6-2'. * docs/VERSION.DLL: Update documentation and bump version number to 2.6.2. * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, builds/windows/vc2005/index.html, builds/windows/vc2008/freetype.vcproj, builds/windows/vc2008/index.html, builds/windows/vc2010/freetype.vcxproj, builds/windows/vc2010/index.html, builds/windows/visualc/freetype.dsp, builds/windows/visualc/freetype.vcproj, builds/windows/visualc/index.html, builds/windows/visualce/freetype.dsp, builds/windows/visualce/freetype.vcproj, builds/windows/visualce/index.html, builds/wince/vc2005-ce/freetype.vcproj, builds/wince/vc2005-ce/index.html, builds/wince/vc2008-ce/freetype.vcproj, builds/wince/vc2008-ce/index.html: s/2.6.1/2.6.2/, s/261/262/. * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2. * builds/unix/configure.raw (version_info): Set to 18:2:12. * CMakeLists.txt (VERSION_PATCH): Set to 2. * docs/CHANGES: Updated.
Werner Lemberg 4679bf83 2015-11-28T19:05:36 Fix C++ compilation. * src/autofit/afloader.c: Include FT_INTERNAL_CALC_H. * src/truetype/ttgload.c (load_truetype_glyph): Pacify compiler.
Nikolaus Waxweiler 01ce1c6a 2015-11-28T12:04:28 Change default LCD filter to be normalized and color-balanced. Update documentation. * src/base/ftlcdfil.c (FT_Library_SetLcdFilter): Update `default_filter'.
Werner Lemberg 98afe3f5 2015-11-28T11:58:49 [docmaker] Allow references to section names. In the reference, we show the section's title enclosed in single quotes. * src/tools/docmaker/formatter.py (Formatter::__init__): Collect section names as identifiers. * src/tools/docmaker/tohtml.py (section_title_header): Split into... (section_title_header1, section_title_header2): ... these two strings. (HtmlFormatter::make_block_url, make_html_word, html_source_quote): Handle sections. (HtmlFormatter::section_enter): Updated to add `id' HTML attribute.
Tamas Kenez 30fdfe6c 2015-11-27T23:16:08 [cmake] Add script to test the config module. * builds/cmake/testbuild.sh: New file.
Tamas Kenez c80620c7 2015-11-27T18:37:21 * CMakeLists.txt: Create `freetype-config.cmake' config module.
Tamas Kenez 9d0544f2 2015-11-27T18:28:31 * CMakeLists.txt: Set CMAKE_DEBUG_POSTFIX to `d'.
Tamas Kenez da97b4c4 2015-11-27T07:11:42 [cmake] Add better control of library dependencies. * CMakeLists.txt: Add `WITH_*' variables to force/auto/omit ZLIB/BZip2/PNG/HarfBuzz.
Tamas Kenez 4854df62 2015-11-27T07:04:31 [cmake] Make `FindHarfbuzz' observe the REQUIRED option. * builds/cmake/FindHarfBuzz.cmake: Implement it.
Werner Lemberg 5b3446b0 2015-11-27T06:47:13 [cmake] Collect files specific to cmake in `builds/cmake'. * builds/FindHarfBuzz.cmake: Move to ... * builds/cmake/FindHarfBuzz.cmake: ... this place. * CMakeLists.txt (CMAKE_MODULE_PATH): Updated.
Alexander Bock 8f982b38 2015-11-27T06:34:39 CMakeLists.txt: Honour new command line flag `FREETYPE_NO_DIST'.
Werner Lemberg 97b808fd 2015-11-26T14:29:17 [docmaker] Allow `foo[bar]' as identifier. We need this to handle equally named properties in different modules. * src/tools/docmaker/content.py (re_identifier), src/tools/docmaker/sources.py (re_crossref): Allow `foo[bar]'. * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word, HtmlFormatter::index_exit, HtmlFormatter::section_enter, HtmlFormatter::block_enter): Handle `foo[bar]'.
Werner Lemberg 4a15013a 2015-11-25T07:53:49 * src/bdf/bdflib.c (bdf_load_font): Fix small memory leak (#46480). (_bdf_parse_glyphs): Always reset `p->glyph_name' after moving its contents.
Werner Lemberg 663f2d7a 2015-11-21T06:30:43 * include/freetype/internal/ftcalc.h: Don't use `register' keyword. This fixes compiler warnings. Reported by Behdad.
Werner Lemberg b96af12e 2015-11-20T16:03:09 Add `FT_LCD_FILTER_LEGACY1' enum value. This does the same as `FT_LCD_FILTER_LEGACY'. See https://bugs.freedesktop.org/show_bug.cgi?id=92981 for the reasoning. * include/freetype/ftlcdfil.h (FT_LcdFilter): New value `FT_LCD_FILTER_LEGACY1'. * src/base/ftlcdfil.c (FT_Library_SetLcdFilter): Use it.
Werner Lemberg 68fb4789 2015-11-15T13:06:48 * src/autofit/afhints.c (af_get_segment_index): Fix it. The old code was too simple, returning invalid values in most cases where a segment crosses the contour start.
Werner Lemberg 94cacac5 2015-11-15T04:45:42 * src/bdf/bdflib.c (bdf_load_font): Fix small memory leak (#46439).
Werner Lemberg 75722f89 2015-11-11T09:55:16 [cff, autofit] Switch off stem darkening by default. * src/autofit/afmodule.c (af_autofitter_init), src/cff/cffobjs.c (cff_driver_init): Do it.
Jan Alexander Steffens (heftig) ccd3188a 2015-11-10T22:33:45 Allow native CFF hinter in FT_RENDER_MODE_LIGHT. Both the native CFF hinter and the auto-hinter now have a very similar rendering style. * include/freetype/freetype.h: Mention that FT_LOAD_TARGET_LIGHT no longer implies FT_LOAD_FORCE_AUTOHINT. * include/freetype/ftmodapi.h (FT_MODULE_DRIVER_HINTS_LIGHTLY): New macro. * include/freetype/internal/ftobjs.h (FT_DRIVER_HINTS_LIGHTLY): New macro. * src/cff/cffdrivr.c (cff_driver_class): Use it. * src/base/ftobjs.c (FT_Load_Glyph): Update auto-hinter selection logic.
Werner Lemberg 2985e4fa 2015-11-09T21:37:40 * src/cid/cidload.c (cid_face_open): Fix GDBytes guard (#46408).
Werner Lemberg 837285e4 2015-11-09T09:20:08 [truetype] Remove integer to pointer conversion compiler warning. Problem reported by Alexei. * src/truetype/ttgload.c (load_truetype_glyph): Use a solution found in the glib library to fix the issue.
Behdad Esfahbod abb33121 2015-11-08T10:00:34 [sfnt] Accept version 3 of `EBLC' and `CBLC' tables also. * src/sfnt/ttsbit.c (tt_face_load_sbit): Implement it.
Philipp Knechtges be32b168 2015-11-08T08:37:51 [autofit] Don't distort (latin) glyphs too much (#46195). * src/autofit/aflatin.h (AF_LatinBlueRec): Add `ascender' and `descender' fields. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Collect ascender and descender data for blue zones. (af_latin_metrics_scale_dim): Reject vertical scaling values that change the result by more than two pixels.
Werner Lemberg 0f0a6bb8 2015-11-05T13:48:11 [sfnt] Ignore embedded bitmaps with zero size (#46379). * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bit_aligned): Implement it.
Werner Lemberg 758d55e5 2015-11-04T11:44:47 [truetype] Catch infinite recursion in subglyphs (#46372). * include/freetype/internal/tttypes.h (TT_LoaderRec): New field `composites'. * src/truetype/ttgload.c: Include FT_LIST_H. (load_truetype_glyph): Add composite subglyph index to a list; abort if index is already in list. (tt_loader_init): Updated. (tt_loader_done): New function. (TT_Load_Glyph): Call `tt_loader_done'.
Werner Lemberg 040edaf5 2015-11-04T07:35:51 [truetype] Better tracing of composite glyphs. * src/truetype/ttgload.c (TT_Load_Composite_Glyph, load_truetype_glyph): Implement it.
Werner Lemberg aae88087 2015-11-03T17:30:36 [sfnt] Protect against zero-size bitmaps (#46345). * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Check `glyph_size'.
Nikolaus Waxweiler b6fd5bc0 2015-11-03T10:40:58 * src/autofit/afloader.c (af_loader_load_g): Implement emboldening.
Nikolaus Waxweiler bf2ba9e3 2015-11-02T13:12:34 [autofit] Implement darkening computation function. This is a crude adaption of the original `cf2_computeDarkening' function. * src/autofit/afloader.c (af_intToFixed, af_fixedToInt, af_floatToFixed): New macros, taken from `cf2fixed.h'. (af_loader_compute_darkening): New function. * src/autofit/afloader.h: Updated.
Nikolaus Waxweiler 37c401ac 2015-11-02T09:32:26 [autofit] Add functions to get standard widths for writing systems. We need the computed standard horizontal and vertical widths for the emboldening calculation. This method provides a convenient way to extract it from writing-system-specific metrics structures, which all script definitions must implement. * src/autofit/aftypes.h (AF_WritingSystem_GetStdWidthsFunc): New function type. (AF_WritingSystemClassRec): New member `style_metrics_getstdw'. (AF_DEFINE_WRITING_SYSTEM_CLASS): Updated. * src/autofit/afcjk.c (af_cjk_get_standard_width): New function. (af_cjk_writing_system_class): Updated. * src/autofit/afdummy.c (af_dummy_writing_system_class): Updated. * src/autofit/afindic.c (af_cjk_get_standard_width): New function. (af_indic_writing_system_class): Updated. * src/autofit/aflatin.c (af_latin_get_standard_width): New function. (af_indic_writing_system_class): Updated. * src/autofit/aflatin.c (af_latin_get_standard_width): New function. (af_indic_writing_system_class): Updated.
Nikolaus Waxweiler b2a85ad3 2015-11-02T09:20:32 [autofit] Extend `AF_FaceGlobalsRec' to hold emboldening data. * src/autofit/afglobal.h (AF_FaceGlobalsRec): Add fields. * src/autofit/afglobal.c (af_face_globals_new): Initialize new fields. (af_face_globals_free): Reset new fields.
Nikolaus Waxweiler d682e510 2015-11-02T09:06:36 [autofit] Add stem-darkening properties. Actual code follows in a later commit. * include/freetype/ftautoh.h: Document `no-stem-darkening' and `darkening-parameters'. * src/autofit/afmodule.h: New fields `no_stem_darkening' and `darken_params'. * src/autofit/afmodule.c (af_property_set, af_property_get): Handle them. (af_autofitter_init): Initialize them.
Werner Lemberg bcf618b2 2015-11-02T06:50:49 [ftfuzzer] Add support for multiple files (patch #8779). Currently, libFuzzer only supports mutation of a single file. We circumvent this problem by using an uncompressed tar archive as multiple-file input for the fuzzer. This patch enables tests of `FT_Attach_Stream' and AFM/PFM parsing; a constructed tarball should contain a font file as the first element, and files to be attached as further elements. * src/tools/ftfuzzer/ftfuzzer.cc: Include libarchive headers. (archive_read_entry_data, parse_data): New functions. (LLVMFuzzerTestOneInput): Updated. * src/tools/ftfuzzer/ftmutator.cc: New file, providing a custom mutator for libFuzzer that can mutate tarballs in a sensible way.
Werner Lemberg 57cbb8c1 2015-10-31T18:47:26 [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.
Werner Lemberg 009cc150 2015-10-31T17:52:56 [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.
Werner Lemberg 02cfd714 2015-10-29T20:50:57 * src/autofit/afhints.c (af_glyph_hints_dump_points): Minor.
Werner Lemberg 017db03e 2015-10-29T05:52:09 * 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.
Werner Lemberg fba29fab 2015-10-27T21:04:48 [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.
Werner Lemberg 6a19a7d3 2015-10-26T15:40:22 [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.
Werner Lemberg 7f00fa64 2015-10-25T10:59:59 [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.
Werner Lemberg 6f09011f 2015-10-24T10:10:22 [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.
Werner Lemberg e93d326c 2015-10-22T10:17:20 [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.
Werner Lemberg f1c93439 2015-10-22T10:11:23 [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.
Werner Lemberg 59ae73fe 2015-10-22T09:26:00 [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'.
Werner Lemberg e484d36b 2015-10-21T20:48:27 [base] Pacify compiler (#46266). * src/base/ftoutln.c (FT_Outline_EmboldenXY): Initialize `in' and `anchor'.
Werner Lemberg 87fefc59 2015-10-21T20:29:12 [type42] Fix heap buffer overflow (#46269). * src/type42/t42parse.c (t42_parse_sfnts): Fix off-by-one error in bounds checking.
Dave Arnold 3cfd5123 2015-10-21T14:07:25 [cff] Fix limit in assert for max hints. * src/cff/cf2interp.c (cf2_hintmask_setAll): Allow mask equal to the limit (96 bits).
Dave Arnold 748e3681 2015-10-21T13:58:43 [cff] Remove an assert (#46107). * src/cff/cf2hints.c (cf2_hintmap_insertHint): Ignore paired edges in wrong order.
Werner Lemberg e6593389 2015-10-21T08:04:29 [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.
Werner Lemberg 649ca556 2015-10-21T07:01:45 [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.
Werner Lemberg 3eccc3a3 2015-10-20T22:31:57 [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'.
Werner Lemberg d47d372c 2015-10-20T12:24:36 [cid] Avoid segfault with malformed input (#46250). * src/cid/cidload.c (cid_read_subrs): Return a proper error code for unsorted offsets.
StudioEtrange 5cf83a53 2015-10-20T07:19:44 * CMakeLists.txt: Enable shared library builds on MinGW (#46233).
Werner Lemberg 3c582060 2015-10-20T06:57:28 * src/type1/t1afm.c (T1_Read_Metrics): Fix memory leak (#46229).
Bungeman ba8a528b 2015-10-19T23:27:06 [cid] Better handle invalid glyph stream offsets (#46221). * src/cid/cidgload.c (cid_load_glyph): Check minimum size of glyph length.
Werner Lemberg 24cee3a8 2015-10-19T23:00:28 [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.
Werner Lemberg 14213b54 2015-10-18T18:15:04 [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.
Werner Lemberg dcfc4d9c 2015-10-18T16:47:06 [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.
Werner Lemberg 7643b583 2015-10-17T15:51:29 * src/cid/cidgload.c (cid_load_glyph): Fix memory leak. Reported by Kostya Serebryany <kcc@google.com>.
Werner Lemberg b185747d 2015-10-17T14:21:41 [bdf] Prevent memory leak (#46217). * src/bdf/bdflib.c (_bdf_parse_glyphs) <STARTCHAR>: Check _BDF_GLYPH_BITS.
Werner Lemberg e1ca18d4 2015-10-17T11:51:27 [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.
Werner Lemberg 0af21dcf 2015-10-17T09:29:52 * src/cid/cidload.c (cid_parse_dict): Check `[FG]DBytes' size.
Werner Lemberg 0ba98da4 2015-10-17T09:11:02 * src/cid/cidgload.c (cid_glyph_load): Check file offsets (#46222).
Werner Lemberg 8edfcbed 2015-10-17T08:11:16 [psaux] Fix heap buffer overflow (#46221). * src/psaux/t1decode.c (t1_decoder_parse_charstring) <operator 12>: Fix limit check.
Werner Lemberg a5ecfb4c 2015-10-17T06:15:55 * src/cid/cidload.c (cid_parse_dict): Handle invalid input (#46220).
Kostya Serebryany 266976b1 2015-10-15T22:15:53 add src/tools/ftfuzzer/README
Bungeman 65d89804 2015-10-15T23:50:16 [bdf] Fix memory leak (#46213). * src/bdf/bdflib.c (bdf_load_font): Always go to label `Fail' in case of error.
Werner Lemberg 24a1fcdf 2015-10-15T21:50:15 [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.
Werner Lemberg 837ad9d4 2015-10-15T21:15:45 * src/truetype/ttinterp.c (TT_RunIns): Fix bytecode stack tracing. The used indices were off by 1.
Werner Lemberg 8b76eaf0 2015-10-15T18:28:43 * src/tools/ftfuzzer/ftfuzzer.cc: Handle fixed sizes (#46211).
Werner Lemberg e03214e1 2015-10-15T16:58:13 [base] Compute MD5 checksums only if explicitly requested. This improves profiling accuracy. * src/base/ftobjs.c (FT_Render_Glyph_Internal): Implement it.
Werner Lemberg 2a20c92c 2015-10-14T15:23:15 [base] Use `FT_' namespace for MD5 functions (#42366). * src/base/ftobjs.c (MD5_*): Define as `FT_MD5_*'. Undefine HAVE_OPENSSL.
Werner Lemberg 8539915d 2015-10-13T20:43:19 [type1] Correctly handle missing MM axis names (#46202). * src/type1/t1load.c (T1_Get_MM_Var): Implement it.
Werner Lemberg 58b61b6e 2015-10-13T18:26:18 [pcf] Quickly exit if font index < 0. Similar to other font formats, this commit makes the parser no longer check the whole PCF file but only the header and the TOC if we just want to get the number of available faces (and a proper recognition of the font format). * src/pcf/pcfdrivr.c (PCF_Face_Init): Updated. Exit quickly if face_index < 0. * src/pcfread.c (pcf_load_font): Add `face_index' argument. Exit quickly if face_index < 0. * src/pcf/pcf.h: Updated.
Werner Lemberg bdb56bba 2015-10-13T11:51:13 [ftfuzzer] Handle TTCs and MM/GX variations. This patch also contains various other improvements. * src/tools/ftfuzzer/ftfuzzer.cc: Add preprocessor guard to reject pre-C++11 compilers. (FT_Global): New class. Use it to provide a global constructor and destructor for the `FT_Library' object. (setIntermediateAxis): New function to select an (arbitrary) instance. (LLVMFuzzerTestOneInput): Loop over all faces and named instances. Also call `FT_Set_Char_Size'.
Werner Lemberg 43a96eb2 2015-10-13T11:18:55 [truetype] Refine some GX sanity tests. Use the `gvar' table size instead of the remaining bytes in the stream. * src/truetype/ttgxvar.h (GX_BlendRec): New field `gvar_size'. * src/truetype/ttgxvar.c (ft_var_load_gvar): Set `gvar_size'. (ft_var_readpackedpoints, ft_var_readpackeddeltas: New argument `size'. (tt_face_vary_cvt, TT_Vary_Apply_Glyph_Deltas): Updated.
Werner Lemberg 052f6c56 2015-10-13T08:24:32 [truetype] Another GX sanity test. * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Check `tupleCount'. Add tracing message.
Werner Lemberg 7ef0d866 2015-10-13T08:14:20 [truetype] Fix memory leak for broken GX fonts (#46188). * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Fix scope of deallocation.
Werner Lemberg f96094ee 2015-10-13T07:13:56 [truetype] Fix commit from 2015-10-10. * src/truetype/ttgxvar.c (ft_var_load_gvar): Add missing error handling body to condition.
Werner Lemberg b9880aa0 2015-10-12T10:13:26 [unix] Make MKDIR_P actually work. * builds/unix/configure.raw: Fix underquoting of `INSTALL' and `MKDIR_P'. Problem reported by Dan Liddell <lddll@yahoo.com>.
Werner Lemberg 4f7f6f6e 2015-10-11T07:55:25 [sfnt] Improve extraction of number of named instances. * src/sfnt/sfobjs.c (sfnt_init_face) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Check number of instances against `fvar' table size.
Werner Lemberg a724dcf5 2015-10-11T05:50:07 Split off ChangeLog.25.
Alexei Podtelezhnikov c14ae9c5 2015-10-10T22:28:26 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix overflow (#46149).
Werner Lemberg 8de39a79 2015-10-10T13:34:11 [sfnt] Fix infinite loops with broken cmaps (#46167). * src/sfnt/ttcmap.c (tt_cmap8_char_next, tt_cmap12_next): Take care of border condidions (i.e., if the loops exit naturally).
Werner Lemberg da34673e 2015-10-10T10:21:27 [truetype] More sanity tests for GX handling. These tests should mainly help avoid unnecessarily large memory allocations in case of malformed fonts. * src/truetype/ttgxvar.c (ft_var_readpackedpoints, ft_var_readpackeddeltas): Check number of points against stream size. (ft_var_load_avar): Check `pairCount' against table length. (ft_var_load_gvar): Check `globalCoordCount' and `glyphCount' against table length. (tt_face_vary_cvt): Check `tupleCount' and `offsetToData'. Fix trace. (TT_Vary_Apply_Glyph_Deltas): Fix trace. Free `sharedpoints' to avoid memory leak.
Werner Lemberg c220d8b4 2015-10-10T08:13:04 [truetype] Better protection against malformed GX data (#46166). * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Correctly handle empty `localpoints' array.
Werner Lemberg d353f6e0 2015-10-10T06:54:46 * src/pcf/pcfread.c (pcf_read_TOC): Check stream size (#46162).
Werner Lemberg c12956e7 2015-10-09T09:38:32 * src/gzip/ftgzip.c (FT_Stream_OpenGzip): Use real stream size.
Werner Lemberg d98053c9 2015-10-08T23:17:41 [pcf] Protect against invalid number of TOC entries (#46159). * src/pcf/pcfread.c (pcf_read_TOC): Check number of TOC entries against size of data stream.
Werner Lemberg 06c2d332 2015-10-08T21:31:57 [type42] Protect against invalid number of glyphs (#46159). * src/type42/t42parse.c (t42_parse_charstrings): Check number of `CharStrings' dictionary entries against size of data stream.
Werner Lemberg 983b00ec 2015-10-08T18:44:45 [sfnt] Fix some signed overflows (#46149). * src/sfnt/ttsbit.c (tt_face_load_strike_metrics) <TT_SBIT_TABLE_TYPE_SBIX>: Use `FT_MulDiv'.
Werner Lemberg 12112241 2015-10-08T08:55:15 [type1] Protect against invalid number of subroutines (#46150). * src/type1/t1load.c (parse_subrs): Check number of `Subrs' dictionary entries against size of data stream.
Kostya Serebryany dde84f25 2015-10-07T22:18:22 [ftfuzzer] Add support for LLVM's LibFuzzer. * src/tools/ftfuzzer/ftfuzzer.cc, src/tools/runinput.cc: New files.