Log

Author Commit Date CI Message
Alexei Podtelezhnikov cb9e7b7a 2021-11-06T22:59:31 [truetype] Avoid some memory zeroing in variations. * src/truetype/ttgxvar.c (ft_var_readpackeddeltas, ft_var_load_avar, ft_var_load_item_variation_store, ft_var_load_gvar): Use FT_QNEW_ARRAY if memory immediately initialized or discarded otherwise.
Jany Belluz fc55291b 2021-11-04T11:07:43 [truetype] Fix handling of packed deltas in Variation Fonts. * src/truetype/ttgxvar (ft_var_readpackeddeltas): Don't expect the number of bytes used to encode the deltas to be higher than the number of encoded values. The specification allows a very compact encoding; for example, a list of 200 zeros can be encoded with just a couple of bytes. We now count the consumed bytes to make sure to not read more than expected.
Jany Belluz 9ed5332f 2021-11-04T08:56:59 [truetype] Fix CVAR handling of tuples for all points. * src/truetype/ttgxvar (tt_face_vary_cvt): Function `ft_var_readpackedpoints`, when it returns `ALL_POINTS`, also sets `point_count` to value 0. However, the CVAR code was incorrectly expecting that `point_count` would be set to match the length of the CVT table.
Jany Belluz 23d1d8ad 2021-11-04T08:55:39 * src/truetype/ttgxvar.c: Fix typos in macros that guard CVAR code.
Alexei Podtelezhnikov 5d651faa 2021-11-03T22:43:22 * docs/INSTALL: Mention Meson and MSBuild more prominently.
Gabor Kertesz e6e6cbf1 2021-11-03T10:07:20 [libpng] Update Meson wrap for win-arm64 1.6.37-5 released patches for win-arm64 to successfully build libpng with Meson: https://github.com/mesonbuild/wrapdb/pull/205 https://github.com/mesonbuild/wrapdb/pull/216 Updated by the following command: meson wrap update libpng Tested on win-arm64 and x64.
Dominik Röttsches d3d3ff76 2021-11-01T17:32:27 [sfnt] Clarify `COLR` v1 FT_Paint* format representations * include/freetype/ftcolor.h (FT_PaintLinearGradient, FT_PaintRadialGradient, FT_PaintSweepGradient, FT_PaintTransform, FT_PaintTranslate, FT_PaintScale, FT_PaintRotate, FT_PaintSkew): Clarify 16.16 fixed point representation of struct fields. * src/sfnt/ttcolr.c (read_paint): Shift coordinates for FT_PaintLinearGradient, FT_PaintRadialGradient, FT_PaintSweepGradient accordingly. Fixes: https://gitlab.freedesktop.org/freetype/freetype/-/issues/1110
Alexei Podtelezhnikov 588a058d 2021-11-02T22:51:51 [builds/windows] Let MSBuild handle DLG copy. * builds/windows/vc2010/freetype.vcxproj: Specify DlgCopy target. * builds/windows/vc2010/script.bat: Deleted.
Alexei Podtelezhnikov 94cb3a2e 2021-10-29T10:31:59 * src/truetype/ttgload.c (load_truetype_glyph): Fix MSVC warning C4312.
Alexei Podtelezhnikov 31fd0547 2021-10-29T10:13:47 [builds/windows] Separate MSVC linker and librarian. MSVC uses LIB for static and LINK for dynamic libraries. They are related but the former has much smaller set of options. * builds/windows/vc2010/freetype.vcxproj: Updated.
Alexei Podtelezhnikov 79b28d37 2021-10-28T22:51:15 [builds/windows] Revise MSVC linking optimizations. * builds/windows/vc2010/freetype.vcxproj: Optimize DLL linking only. * builds/windows/visualc/freetype.dsp: Ditto. * builds/windows/visualc/freetype.vcproj: Ditto.
Alexei Podtelezhnikov 793c0126 2021-10-27T22:36:11 [woff] Optimize table tagging. * include/freetype/internal/wofftypes.h (WOFF_TableRec): Use 32-bit tag. * src/sfnt/sfwoff.c (woff_open_font): Use 32-bit tag.
Alexei Podtelezhnikov a577bbcb 2021-10-27T22:24:27 [woff2] Optimize table tagging. Fixes #1107. * include/freetype/internal/wofftypes.h (WOFF2_TableRec): Use 32-bit tag. * src/sfnt/sfwoff2.c (compare_tags, find_table, woff2_open_font): Use 32-bit tag. * src/sfnt/woff2tags.[ch] (woff2_known_tags): Use static storage and return 32-bit tag.
Werner Lemberg 80b13f57 2021-10-26T10:57:17 Formatting.
Ben Wagner 535c67dd 2021-10-25T22:38:05 [mm] Tolerate missing Blend dictionary entries In a Multiple Master font, the Blend dictionary must contain valid Private, FontInfo, and FontBBox. The current code will error if any of these are present and invalid, but will not error and will provide uninitialized data if the Blend dictionary exists but does not contain one of these entries. This change reverts to the older behavior of treating any missing entries as containing all zero data and not returning an error. In the future it may be best to keep track of when these are actually initialized and error if they are not. * src/type1/t1load.c (t1_allocate_blend): Zero initiailize.
Alexei Podtelezhnikov f091e60c 2021-10-25T22:31:09 [builds/windows] Add MSVC linker optimazations. We continue to build static libraries with statically linked C run- time and add options to optimize references. * builds/windows/vc2010/freetype.vcxproj: Sort entries, add options.
Alexei Podtelezhnikov 92f5e15f 2021-10-23T09:43:46 * builds/windows/vc2010/freetype.vcxproj: Use MachineARM64.
Alexei Podtelezhnikov 5e6efd6a 2021-10-22T15:25:10 [builds/windows] Prioritize x64. * builds/windows/vc2010/freetype.sln: Sort entries.
Gabor Kertesz 80bd4cba 2021-10-22T10:56:42 [builds/windows] Add ARM64 platform. * builds/windows/vc2010/freetype.sln: Updated * builds/windows/vc2010/freetype.vcxproj: Updated. * builds/windows/vc2010/freetype.vcxproj.filters: Minor fix.
Ben Wagner 65be4b21 2021-10-21T09:55:28 [mm] Delay setting blend weight and design position. Previously the `blend->weight_vector`, `blend->default_weight_vector`, and `blend->design_pos` were set early to allocated but uninitialized memory under the assumption that the memory would eventually be initialized. However, it is possible that some of the required keywords may not actually be present, leaving the memory uninitialized. This is different from a present but invalid table, which would produce an error. Reported as https://bugs.chromium.org/p/chromium/issues/detail?id=1261762 * src/type1/t1load.c (t1_allocate_blend): Remove early allocation and initialization. (parse_blend_design_positions, parse_weight_vector): Parse into local and assign to blend if valid. (T1_Open_Face): Check that if a blend exists that it has the weight vector and design positions.
Ben Wagner b5e003f1 2021-10-21T09:48:38 [cff] Commit vstore data and regions on allocation. The vstore->regionCount and vstore->dataCount were read directly from the data. However, vstore->varRegionList and vstore->varData would still contain uninitialized entries with uninitialized pointers in the event of an error, leading to issues when attempting to clean up. Reportd as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=40104 * src/cff/cffload.c (cff_vstore_load): Read the region and data counts into locals and update the vstore counts immediately after each entry becomes free-able.
Ben Wagner fde91ab8 2021-10-20T11:45:15 [sfnt] Delay setting gasp ranges and count until computed. Previously, the gasp.numRanges was set and gasp.gaspRanges was allocated and assigned before a possible early exit if the frame could not be entered. It is also possible that the gaspRanges allocation could fail but the numRanges still be set to non-zero. In such cases an error would be returned, but the face would have a gasp in an inconsistent state which may still be accessed. Reported as https://bugs.chromium.org/p/chromium/issues/detail?id=1261450 * src/sfnt/ttload.c (tt_face_load_gasp): Delay setting gasp.numRanges and gasp.gaspRanges until after the ranges are initialized.
Ben Wagner 6d12e3a0 2021-10-20T11:38:16 [sfnt] Delay setting names and langTags until computed. Previously, the table->names and table->langTags fields were created pointing to uninitialized memory and an early exit could happen if the frame could not be entered. The caller would then be unable to properly dispose of the memory as the string fields had not been initialized. Reported as https://bugs.chromium.org/p/chromium/issues/detail?id=1261343 * src/sfnt/ttload.c (tt_face_load_name): delay setting table->langTags and table->names until after the memory they will point to is fully initialized.
Alexei Podtelezhnikov e990c33f 2021-10-20T11:27:03 * tests/issue-1063/main.c: s/PATH_MAX/FILENAME_MAX/. Closes !97 for Windows by using a standard macro.
Werner Lemberg 8ef8072b 2021-10-19T22:59:46 [bdf, cid, pfr, winfonts] Improve rejection of other font formats. This is mainly for better diagnostics of malformed fonts. * src/bdf/bdflib.c (_bfd_readstream): Stop font format testing if the first input line is too long or doesn't end with `\r` or `\n`. * src/cid/cidparse.c (cid_parser_new): Don't handle too short input as an error but as an unknown format. * src/pfr/pfrobjs.c (pfr_face_init): Ditto. * src/winfonts/winfnt.c (fnt_font_load, fnt_face_get_dll_font): Ditto.
Alexei Podtelezhnikov 38b349c4 2021-10-18T20:35:28 [pcf] Zero out the allocated properties. Fallout reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=40033 * src/pcf/pcfread.c (pcf_get_properties): Use FT_NEW_ARRAY and zero out `properties` in case of failure.
Werner Lemberg de9faa53 2021-10-18T21:03:38 configure: Use string comparison for directory inodes. Inode values might be larger than integers supported by the shell. Fixes #1105.
Alexei Podtelezhnikov 986d503f 2021-10-17T09:14:27 * src/sfnt/ttload.c (tt_face_load_name): NULL-initialize langTag. Another attempt to fix fallout reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=40024
Alexei Podtelezhnikov 30ca63d4 2021-10-16T23:02:47 [bdf] Fix up user properties. Fallout reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=40027 * src/bdf/bdflib.c (_bdf_add_property): Cosmetic NULL. (bdf_create_property): Limit allocations to customary signed FT_Long and NULL-initialize unused storage. (bdf_free_font): Do not free unused storage.
Alexei Podtelezhnikov afd1cb28 2021-10-16T20:25:11 * src/sfnt/ttload.c (tt_face_load_name): Accounting fix. Fallout reported as https://crbug.com/40024
Ben Wagner c71eb22d 2021-10-15T22:18:38 Fix typos in memory macros. FT_QNEW_ARRAY and FT_QRENEW_ARRAY were using the non-Q FT_MEM_NEW_ARRAY and FT_MEM_RENEW_ARRAY. Change these to use the Q versions. Also fix the one issue discovered in tt_face_load_name where table->names is created with FT_QNEW_ARRAY but the extra string member is not initialized to NULL. * include/freetype/internal/ftmemory.h (FT_Q(RE)NEW_ARRAY): Use FT_MEM_Q(RE)NEW_ARRAY as needed. * src/sfnt/ttload.c (tt_face_load_name): Initialize `entry->string`.
Ben Wagner 8406ae53 2021-10-15T14:16:30 [truetype] Reload context after re-executing `prep`. When a different hinting mode from the current is selected, the `prep` table must be re-executed with the new mode. After this happens the context must be re-loaded in preparation for the glyph program to be run. Fixes #1104. * truetype/ttgload.c (tt_loader_init): Add call to `TT_Load_Context`.
Werner Lemberg 0b92c56c 2021-10-15T19:02:41 [truetype] Minor documentation improvements.
Anurag Thakur 943a6bf7 2021-10-13T21:20:35 Add clang build to linux CI
Anurag Thakur ede96b23 2021-10-12T18:26:35 CI: Add macOS CI, including a clang build
Alexei Podtelezhnikov e294a95c 2021-10-11T23:25:29 * src/cid/cidload.c (parse_fd_array): Protect against trancation.
Alexei Podtelezhnikov 1029eb93 2021-10-11T22:25:14 [type1] Revert to signed size for binary data. Recently introduced and reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=39838 * src/type1/t1load.c (read_binary_data): Reject negative size. (parse_subrs, parse_charstrings): Use customary signed size.
Alexei Podtelezhnikov 77bd46e9 2021-10-10T23:12:12 [psaux] Signedness revisions. Unsigned indexes are easier to check. * src/psaux/cffdecode.c (cff_decoder_parse_charstrings): Updated. * src/psaux/psintrp.c (cf2_interpT2CharString): Ditto. * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Ditto. * src/type1/t1load.c (read_binary_data): Ditto.
Alexei Podtelezhnikov 3b036820 2021-10-10T23:11:10 [cid] Signedness revisions. Unsigned checks are simpler. * include/freetype/t1tables.h (CID_FaceInfoRec): Change to unsignd `num_dicts`. * src/cid/cidparse.h (CID_Parser): Change to unsigned `num_dict`. * src/cid/cidgload.c (cid_load_glyph): Updated. * src/cid/cidload.c (cid_load_keyword, parse_fd_array, parse_expansion_factor, parse_font_name, cid_read_subrs, cid_face_open): Updated. * src/cid/cidobjs.c (cid_face_done): Updated. * src/cid/cidparse.c (cid_parser_new): Updated.
Alexei Podtelezhnikov 012b4f2d 2021-10-08T22:14:12 * src/cid/cidload.c (cid_face_open): Streamline CIDCount check.
Alexei Podtelezhnikov 946df221 2021-10-07T22:44:53 * src/cid/cidload.c (cid_face_open): Streamline SubrCount check.
Alexei Podtelezhnikov 0313a11c 2021-10-07T22:43:12 * src/cid/cidgload.c (cid_load_glyph): Fortify incremental loading.
Alexei Podtelezhnikov 22befeef 2021-10-07T22:41:56 Signedness revisions. This eliminates explicit casting by switching to unsigned fields. The revisions mostly impact the handling of CID fonts. * include/freetype/fttypes.h (FT_Data): Change to unsigned `length`. * include/freetype/t1tables.h (CID_FaceDictRec): Ditto for `sd_bytes`. (CID_FaceInfoRec): Ditto for `gd_bytes` and `gd_bytes`. * include/freetype/internal/tttypes.h (TT_LoaderRec): Ditto for `byte_len`. * src/cid/cidgload.c (cid_load_glyph): Updated. * src/cid/cidload.h (cid_get_offset): Update argument. * src/cid/cidload.c (cid_get_offset, cid_read_subrs, cid_face_open): Updated. * src/cff/cffgload.c (cff_get_glyph_data, cff_free_glyph_data): Updated. * src/psaux/psft.c (cf2_getT1SeacComponent): Updated. * src/truetype/ttgload.c (TT_Process_Composite_Glyph, load_truetype_glyph): Updated.
Jan Alexander Steffens (heftig) 842ec5ed 2021-10-07T00:46:14 meson.build (gen_docs): Use `current_source_dir` instead of `source_root`. These two are not equal when FreeType is used as a subproject, such as in `freetype-demos`. In that case, `source_root` points at the root project, causing the docs build to fail.
Alexei Podtelezhnikov 0f23ae2e 2021-10-05T16:28:40 * src/smooth/ftgrays.c (FT_DIV_MOD): Limit the ARM workaround.
Alexei Podtelezhnikov a1560406 2021-10-05T14:19:06 [builds/unix, builds/vms] Standardize `mmap` failure. * builds/unix/ftsystem.c (FT_Stream_Open): Check for MAP_FAILED. * builds/vms/ftsystem.c (FT_Stream_Open): Ditto. This should cover https://savannah.nongnu.org/patch/?5909 as well.
Hugh McMaster 467e49e8 2021-10-05T22:21:39 autogen.sh: Only copy submodules if building from a git branch. `autogen.sh` fails if building from a standard source tarball. Firstly, git expects to be called in a git repository, then `copy_submodule_files` blindly attempts to copy files. Debian, Ubuntu, Linux Mint, and other derivatives all run `autogen.sh` before compiling to regenerate build files. This patch ensures that various git commands are only called and 'dlg' files are only copied if `autogen.sh` is called from a git repository.
Alexei Podtelezhnikov bbab0a67 2021-10-04T23:55:46 * include/freetype/internal/ftgloadr.h: Add missing header. Noticed by Jouk Jansen.
Alexei Podtelezhnikov ec6a4588 2021-10-04T23:10:59 [pshinter] Additional clean-ups. * src/pshinter/pshalgo.h (psh_hint_table_find_strong_points): Streamline code. * src/pshinter/pshalgo.h (PSH_Glyph): Remove unused fields.
Alexei Podtelezhnikov 227445f6 2021-10-03T22:48:23 [pshinter] More convenient direction definition. It is easier to check directions using flags than integer values. * src/pshinter/pshalgo.h (PSH_Dir): Redefine directions. (PSH_PointRec): Use them as an enum type. * src/pshinter/pshalgo.c (psh_compute_dir): Modify return type. (psh_glyph_init, psh_hint_table_find_strong_points, psh_glyph_find_blue_points): Update users.
Alexei Podtelezhnikov d102a514 2021-10-03T22:45:42 [pshinter] Remove unnecessary check. * src/pshinter/pshalgo.c (psh_hint_table_find_strong_points): Do not check if direction is defined before checking how.
AnuthaDev 3a65f1a2 2021-10-02T10:52:15 CI: Hardcode meson version to fix build failure on windows
Alexei Podtelezhnikov 311764fa 2021-10-01T11:50:12 Additional `FT_MSB` macro definitions. * include/freetype/internal/ftcalc.h [__DECC,_CRAYC]: Use builtins and intrinsics.
Alexei Podtelezhnikov 68fae526 2021-09-30T22:59:04 * src/autofit/afhints.c (af_glyph_hints_reload): Decrease casting.
Alexei Podtelezhnikov 1d79c892 2021-09-29T22:17:31 * src/tools/apinames.c: Facilitate OpenVMS linker options.
Alexei Podtelezhnikov dd0ccdc3 2021-09-28T22:57:58 * src/winfonts/winfnt.c (FNT_Face_Init): Correct reallocation.
Alexei Podtelezhnikov 12ef831f 2021-09-24T22:27:27 [builds/unix] Do not use autoconf SIZEOF. * builds/unix/ftconfig.h.in [FT_USE_AUTOCONF_SIZEOF_TYPES]: Removed. * builds/unix/configure.raw: Remove AC_CHECK_SIZEOF and update. After this commit, autoconf builds will fully rely on <limits.h> rather than falling back on it if AC_CHECK_SIZEOF failed for some reason. There is a risk that misconfigured cross-compilation might have wrong headers. Note that Meson and CMake builds always relied on <limits.h> for sizes and availability of integer types.
Alexei Podtelezhnikov 766b2c19 2021-09-24T22:14:22 Propagate sign when reading OFF3. Signed 24-bit values are extremely rare. FreeType only reads them in PFR fonts with bitmap strikes conditionally. They have not been seen in the known fonts. That is why this bug could never be discovered. `FT_FRAME_OFF3` propagates sign correctly. * include/freetype/internal/ftstream.h (FT_PEEK_OFF3, FT_PEEK_OFF3_LE): Propagate sign into 32-bit value. (FT_GET_OFF3, FT_READ_OFF3): Needed fixing but removed as unused.
Alexei Podtelezhnikov a69320a9 2021-09-24T22:06:44 [bdf] Simplify comment collection or lack thereof. BDF comments are neither actually collected nor retrieved. There is no need to be fancy with delimiters. * src/bdf/bdflib.c (_add_bdf_comment): Delimit comments with zeros... (bdf_load_font): ...and do not null-terminate comments additionally. (_bdf_parse_glyphs): Check if comments are kept, which they are not. (_bdf_parse_start): Minor clean up.
Alexei Podtelezhnikov a29e0200 2021-09-23T23:10:26 Use NULL for pointers only. * src/bdf/bdflib.c (*): Code changes. * include/freetype/freetype.h: Comments only. * src/cff/cffload.c, src/cff/cffobjs.c: Ditto. * src/winfonts/winfnt.c: Ditto.
Werner Lemberg 6d19b29f 2021-09-23T08:46:01 Minor documentation fixes and improvements.
Alexei Podtelezhnikov 3b573e45 2021-09-22T22:22:13 Reference `fopen` in the docs.
Alexei Podtelezhnikov 90b14882 2021-09-22T20:20:04 [bdf, pcf] Minor optimization. * src/pcf/pcfread.c (pcf_load_font): Do not call `FT_MulDiv` for a small job. * src/bdf/bdfdrivr.c (BDF_Face_Init): Ditto. * src/bdf/bdflib.c (_bdf_parse_glyphs): Fix a comment.
Alexei Podtelezhnikov b4dddd82 2021-09-22T00:30:03 [base] Initialize stream memory earlier. With Windows memory management tracking heap, it is important to use it during the stream opening fallback. In Unix, the argument is unused, but it is better to set it correctly. * src/base/ftobjs.c (FT_Stream_New): Set memory before calling `FT_Stream_Open`. * builds/windows/ftsystem.c, builds/unix/ftsystem.c (FT_Stream_Open, ft_close_stream_by_free): Call `ft_alloc` and `ft_free` with proper memory argumment.
Alexei Podtelezhnikov 93866bec 2021-09-21T23:14:42 [builds/windows] Revert back to `CreateFileA` only. Calling `CreateFileW` without making sure that the patname is really `wchar_t` is a bad idea and can lead to unpredictable overreads. For Windows CE, we impelemnt the missing API. Fixes #1098 and !76 again. * builds/windows/ftsystem.c (FT_Stream_Open): Call `CreateFileA`. [_WIN32_WCE] (CreateFileA, FileSizeEx): Implement missing interfaces.
Alexei Podtelezhnikov 892e7ead 2021-09-21T14:39:21 * src/bdf/bdflib.c (_bdf_parse_{start,glyphs}): Use appropriate scanner.
Alexei Podtelezhnikov 61903609 2021-09-20T22:18:29 Minor.
Alexei Podtelezhnikov 71969d1e 2021-09-20T14:31:45 * src/cff/cffdrivr.c (cff_ps_get_font_{info,extra}): Use FT_QNEW.
Alexei Podtelezhnikov 52915898 2021-09-18T07:05:55 [cache] Minor clean-ups. * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Remove parantheses. * src/cache/ftccache.c (FTC_Cache_Lookup): Ditto. (FTC_Cache_RemoveFaceID): Remove unnecessary variable.
Alexei Podtelezhnikov 0b429b60 2021-09-17T08:31:27 [builds/windows] Try both wide and narrow `CreateFile` Windows handles wchar_t* UTF-16 and char* ANSI (presently UTF-8) filenames using alternative -A and -W API. We'll try them both when opening a file. This means that you should not worry about about conversions. Fixes #1098 and !76. * builds/windows/ftsystem.c (FT_Stream_Open): Call alternative `CreateFile` in the case of failure.
Edwin Steiner 6e1ef98a 2021-09-16T23:08:46 [cff] Explicitly set StandardEncoding or ExpertEncoding offsets. Fixes #1097. * src/cff/cffload.c (cff_encoding_load): Set special offset values.
Alexei Podtelezhnikov fce74b73 2021-09-16T17:03:19 [cache] Miscellaneous clean-ups. * src/cache/ftccache.c (ftc_get_top_node_for_hash, FTC_Cache_Clear): Remove barely used variables. (ftc_cache_add): Adjust casting. * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Remove casting. * src/cache/ftcsbits.c (ftc_snode_load): Remove casting.
Alexei Podtelezhnikov 79d14cc2 2021-09-16T16:41:56 * src/cff/cffload.c (cff_fd_select_get): Remove casting.
Alexei Podtelezhnikov ae516e6a 2021-09-16T16:39:23 * src/pcf/pcfread.c (pcf_read_TOC): Remove casting.
Alexei Podtelezhnikov 801b7540 2021-09-14T22:55:50 Minor type adjustments. * src/cff/cffobjs.c (cff_face_init): Reduce casting. * src/truetype/ttobjs.c (tt_size_ready_bytecode): Ditto. * src/type1/t1load.c (T1_Set_MM_Design): Ditto.
Alexei Podtelezhnikov 49270c17 2021-09-14T21:32:43 Replace boolean allocation macros with MEM ones. * src/base/ftbitmap.c (FT_Bitmap_Copy): Use MEM-macro. * src/base/ftobjs.c (ft_glyphslot_alloc_bitmap): Ditto. * src/bzip2/ftbzip2.c (ft_bzip2_alloc): Ditto. * src/cache/ftccache.c (ftc_cache_init): Ditto * src/gzip/ftgzip.c (ft_gzip_alloc): Ditto. * src/psnames/psmodule.c (ps_unicodes_init): Ditto. * src/sfnt/sfobjs.c (sfnt_load_face): Ditto. * src/sfnt/ttload.c (tt_face_load_name): Ditto.
Alexei Podtelezhnikov 9a4c846e 2021-09-14T21:25:47 [cache] Revert to some zeroing. * src/cache/ftccache.c (ftc_cache_init, ftc_cache_resize): Zero `buckets` again to fix some crashes.
Alexei Podtelezhnikov 0a8ee851 2021-09-14T10:26:37 * src/pshinter/pshrec.c (ps_mask_table_merge_all): Tweak loops. Fixes fallout from 731d0b685685 reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=38685
Alexei Podtelezhnikov 731d0b68 2021-09-13T16:29:08 [cff, pshinter] Clean up unsigned counters. Loops with unsigned decrement can be reliably stopped when the counter wraps around after reaching zero. * src/cff/cffload.c (cff_charset_compute_cids): Use unsigned counter. * src/pshinter/pshalgo.c (psh_hint_table_activate_mask): Ditto. * src/pshinter/pshrec.c (ps_mask_table_merge): Ditto.
Alexei Podtelezhnikov 058f3f2d 2021-09-13T16:24:25 [bdf, psnames, sfnt] Avoid some memory zeroing. * src/bdf/bdfdrivr.c (BDF_Face_Init): Use Q-macro. * src/sfnt/sfobjs.c (sfnt_load_face): Ditto. * src/psnames/psmodule.c (src/psnames/psmodule.c): Remove zero.
Alexei Podtelezhnikov 59b43ae6 2021-09-13T16:16:18 * src/base/ftobjs.c (FT_CMap_New): Revert to zeroing. Fixes fallout from c1fa7aa2bc96, reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=38641
Alexei Podtelezhnikov 073ff2d7 2021-09-13T00:04:45 [truetype] Clean up `exec` initialization. * src/truetype/ttinterp.c (Init_Context): Absorbed into... (TT_New_Context): ... this function.
Alexei Podtelezhnikov fab94f9f 2021-09-12T23:30:07 [truetype] Avoid some memory zeroing. * src/truetype/ttgload.c (load_truetype_glyph): Use Q-macro. * src/truetype/ttinterp.c (Update_Max): Ditto. * src/truetype/ttpload.c (src/truetype/ttpload.c): Ditto.
Alexei Podtelezhnikov c1fa7aa2 2021-09-12T23:25:46 [base] Avoid some memory zeroing. * src/base/ftobjs.c (FT_New_Size, FT_CMap_New, FT_CMap_Done, ft_open_face_internal, ft_open_face_internal): Use Q-macros.
Alexei Podtelezhnikov a8e8d9d7 2021-09-12T23:21:32 [cache, psaux] Remove zeros. * src/cache/ftcmru.c (FTC_MruList_New): Remove initialization. * src/psaux/psstack.c (cf2_stack_init): Ditto.
Alexei Podtelezhnikov 9870b6c0 2021-09-12T14:32:22 [cache] Avoid some memory zeroing. * src/cache/ftcmru.c (FTC_MruList_New): Use Q-macro. * src/cache/ftcmanag.c (FTC_Manager_RegisterCache): Ditto. * src/cache/ftccache.c (ftc_cache_init, ftc_cache_resize): Ditto.
Alexei Podtelezhnikov 2d57b059 2021-09-11T10:38:08 * src/cache/ftcmanag.c (FTC_Manager_New): Add missing zero. Fixes fall out from a7b199d081e7.
Alexei Podtelezhnikov 5b626281 2021-09-10T10:19:07 [truetype] Tweak `hdmx` checking. Fixes #1096. * src/truetype/ttpload.c (tt_face_load_hdmx): Account for padding.
Alexei Podtelezhnikov e942a310 2021-09-09T22:17:46 [truetype] Tweak `loca` clamping. Fixes #1095. * src/truetype/ttpload.c (tt_face_load_loca): Fix up clamping. * include/freetype/internal/tttypes.h (TT_Face): Correct docs.
Alexei Podtelezhnikov c350aac0 2021-09-08T12:18:23 Fortify memory debugging (cont'd). * src/base/ftdbgmem.c (FT_DumpMemory): Check for active debugger. (ft_mem_table_destroy): Move `FT_DumpMemory` call from here... (ft_mem_debug_done): ... to here.
Alexei Podtelezhnikov 63806aad 2021-09-08T10:54:44 Fortify memory debugging. These changes are neccessary to properly recover `memory->user` that holds the Windows heap handle now. * src/base/ftdbgmem.c (ft_mem_debug_init): Handle all table allocations, initializations, and sizing instead of... (ft_mem_table_new): ... this function removed. (ft_mem_debug_done): Better check for the active debugger and free the debugger table here instead of... (ft_mem_table_destroy): ... here.
Werner Lemberg 77dcc5ed 2021-09-07T18:49:36 src/tools/ftrandom/ftrandom.c (_XOPEN_SOURCE): Set to 600. This allows C99 compilation on Solaris. Problem reported by Mojca Miklavec.
Alexei Podtelezhnikov 7e26c7a6 2021-09-07T17:06:27 [builds/windows] Use native memory allocation API. * builds/windows/ftsystem.c (ft_alloc, ft_realloc, ft_free): Wrap HeapAlloc, HeapReAlloc, and HeapFree. (FT_New_Memory): Set the heap handle.
Werner Lemberg 60a93ea2 2021-09-07T06:38:09 [dlg] Synchronize with upstream. * src/dlg/dlgwrap.c (_XOPEN_SOURCE): Set to 600. Fixes #1093.
Alexei Podtelezhnikov aee1fd3b 2021-09-03T22:13:22 Cosmetic zeros.
Alexei Podtelezhnikov 7bf655b2 2021-09-03T11:31:41 * src/bdf/bdflib.c (_bdf_parse_start): Keep parser memory.
Werner Lemberg d1d3dc02 2021-09-02T22:12:07 autogen.sh: Make it work with old Solaris 10 shell.
Alexei Podtelezhnikov 7f8f0c1c 2021-09-02T23:30:31 [smooth, raster, sdf] Clean up initialization calls. * src/raster/ftraster.c (ft_black_init): Removed. (ft_black_new): Clean up. * src/sdf/ftbsdf.c (bsdf_raster_new): Ditto. * src/sdf/ftsdf.c (sdf_raster_new): Ditto. * src/smooth/ftgrays.c (gray_raster_new): Ditto.
Alexei Podtelezhnikov a7b199d0 2021-09-02T22:58:50 * src/cache/ftcmanag.c (FTC_Manager_New): Avoid some zeroing.
Alexei Podtelezhnikov 0a6f0f8f 2021-09-02T22:52:21 * src/bdf/bdflib.c (bdf_load_font): Remove memory shuffling.