Branch :
| Author | Commit | Date | CI | Message |
|---|---|---|---|---|
| c33da8fb | 2025-01-22 16:59:44 | * src/bdf/bdflib.c (bdf_parse_start_): Relax the header order. We now check that the header is complete in no specific order. | ||
| a059b237 | 2025-01-19 22:39:17 | * src/truetype/ttgxvar.c (tt_face_vary_cvt): Fix all shared values. Applying cvar deltas to all shared points was incorrectly omitted. Fixes #1314. | ||
| b9e09e33 | 2025-01-19 12:35:13 | * src/bdf/bdflib.c (bdf_parse_glyphs_): Fix tracing. | ||
| 01c22b36 | 2025-01-19 11:19:10 | [bdf] Tokenize input instead of listing. Instead of cumbersome field list mamangement, we will tokenize input using custom `bdf_strtok_`. * src/bdf/bdflib.c (bdf_list_t_, bdf_list_init_, bdf_list_ensure_, bdf_list_shift_, bdf_list_join_, bdf_list_split_, bdf_set_default_spacing_): Removed. (bdf_strtok_): New function which NUL-terminates the first token at the delimiter position and returns the next token that follows consequtive delimiters. (bdf_parse_*_, bdf_load_font): Updated. * docs/CHANGES: Claim overall 75% performance improvement. | ||
| ad7dce77 | 2025-01-17 20:54:14 | * src/bdf/bdflib.c (bdf_parse_start_): Prevent another STARTPROPERTIES. Only one STARTPROPERTIES was permitted in the old flow preventing leaks and overflows. See https://issues.oss-fuzz.com/issues/389968131 https://issues.oss-fuzz.com/issues/390464875 | ||
| e3a3b39d | 2025-01-16 23:25:08 | * src/bdf/bdflib.c (bdf_parse_start_): Do not overwrite flags. | ||
| d4631a2e | 2025-01-16 20:54:33 | * src/bdf/bdflib.c (bdf_readstream_): Skip all control characters. This agrees with specifications and makes the code a lot simpler. | ||
| 02953326 | 2025-01-16 03:47:14 | * src/bdf/bdflib.c (bdf_parse_start_): Reserve space for artificial properties. | ||
| ae11e18c | 2025-01-15 15:50:12 | * src/bdf/bdflib.c (bdf_add_property_): Add extra protection. See https://issues.oss-fuzz.com/issues/389972472 https://issues.oss-fuzz.com/issues/389968131 | ||
| a0d86e56 | 2025-01-14 22:58:04 | * src/bdf/bdflib.c: Clean up. | ||
| a3c68e3b | 2025-01-14 22:32:46 | [bdf] Use flags instead of options. * src/bdf/bdf.h (bdf_options_t): Removed. (BDF_KEEP_COMMENTS, BDF_KEEP_UNENCODED, BDF_CORRECT_METRICS): Updated to avoid collisions with the other parsing flags. * src/bdf/bdfdrivr.c (BDF_Face_Init): Use default flags explicitly. * src/bdf/bdflib.c (bdf_load_font): Use flags as an argument to initialize the parser. (bdf_set_fedault_spacing_): Default to BDF_PROPORTIONAL explicitly. (bdf_parse_*_): Updated. | ||
| a05c2210 | 2025-01-14 21:11:33 | [bdf] Adjust parsing flow and CHARS handling. * src/bdf/bdflib.c (bdf_readstream_): Remove CHARS exception. (bdf_parse_glyphs_): Move glyphs allocation... (bdf_parse_properties_): and missing ascent and descent handling... (bdf_parse_start_): ...to here under CHARS. | ||
| 0864367a | 2025-01-14 18:39:50 | * src/bdf/bdflib.c (bdf_readstream_): Tweak variables and loop design. | ||
| ee1310ab | 2025-01-13 17:19:31 | * src/bdf/bdflib.c (bdf_parse_glyphs_): Free unused glyph_name. See https://issues.oss-fuzz.com/issues/389330334. | ||
| f2199967 | 2025-01-13 03:48:28 | * src/bdf/bdflib.c (bdf_parse_glyphs_): Store glyph as soon as possible. | ||
| aab40d5c | 2025-01-12 00:24:42 | * src/bdf/bdflib.c (bdf_parse_glyphs_): Avoid possible leak. | ||
| bbc445e1 | 2025-01-11 23:11:07 | [bdf] Speed up bitmap parsing. A dedicated parser of bitmap data with minimal error checking and no string comparisons helps to improve performance. * src/bdf/bdflib.c (bdf_parse_bitmap_): New dedicated bitmap parser. (bdf_parse_glyphs_): Pass to `bdf_parse_bitmap_` on BITMAP. | ||
| 4433c7b7 | 2025-01-11 18:54:04 | * src/bdf/bdflib.c (a2i): Formatting. | ||
| ff5872b4 | 2025-01-10 22:55:13 | * src/bdf/bdflib.c (bdf_parse_*_): Minor improvements. | ||
| cf451e5f | 2025-01-10 22:31:07 | * src/bdf/bdf.h (bdf_font_t): Correct `internal` type. * src/bdf/bdflib.c (*): Update users. | ||
| 1f57020f | 2025-01-10 03:23:41 | * src/bdf/bdflib.c (bdf_parse_start_): Fix tracing labels. | ||
| 73318c86 | 2025-01-08 15:45:32 | [cff] Remove size/slot checks. After the previous commit, cff_glyph_load is no longer called without first checking for valid size and glyph objects in FT_Glyph_Load and these checks can be removed downstream. * src/cff/cffdrivr.c (cff_glyph_load): Remove `size` and `glyph` checks. * src/cff/cffgload.c (cff_slot_load): Ditto. | ||
| c7a255b4 | 2025-01-07 19:52:29 | * src/cff/cffdrivr.c (cff_get_advances): Do only fast advances. Otherwise, let TT_Get_Advances fall back on cff_load_glyph to do slow advances. This avoids unchecked access to cff_load_glyph and this is how tt_get_advances is implemented. | ||
| 81330e1f | 2025-01-03 22:54:20 | * src/truetype/ttgload.c (TT_Load_Glyph): Consolidate flag setting. | ||
| 5245fd69 | 2025-01-03 21:26:10 | Delay FT_GLYPH_FORMAT_OUTLINE assignmets. This assignmets used to be done prematurely before errors were checked and outlines were actually loaded. Delaying the assignment provides certain protection against careless usage of malformed input that should now remain FT_GLYPH_FORMAT_NONE. * src/cff/cffgload.c (cff_slot_load): Ditto. * src/cid/cidgload.c (cid_slot_load_glyph): Ditto. * src/pfr/pfrobjs.c (pfr_slot_load): Ditto. * src/truetype/ttgload.c (TT_Load_Glyph): Ditto. * src/type1/t1gload.c (T1_Load_Glyph): Ditto. | ||
| 64f8b7fb | 2025-01-02 18:22:24 | Remove superfluous outline zeroing. This is already done by `ft_glyphslot_clear`. * src/cff/cffgload.c (cff_slot_load): Do not zero outline fields. * src/cid/cidgload.c (cid_slot_load_glyph: Ditto. * src/pfr/pfrobjs.c (pfr_slot_load): Ditto. * src/truetype/ttgload.c (load_sbit_image): Ditto. * src/type1/t1gload.c (T1_Load_Glyph): Ditto. | ||
| 10b3b14d | 2025-01-01 23:04:14 | * src/truetype/ttobjs.c: Abbreviate tracing. | ||
| 1beb83fd | 2025-01-01 22:28:36 | * src/sfnt/ttsbit.c (tt_face_load_sbix_image): Refactor `flip`. | ||
| abed051e | 2025-01-01 14:40:58 | [truetype] Consolidate bitmap strike handling. * src/truetype/ttgload.c (TT_Load_Glyph): Relocate omitted whitespace strike handling from here... (load_sbit_image): ... to here. | ||
| 4ef8eed1 | 2024-12-31 16:25:50 | [truetype] Ingnore FT_LOAD_NO_BITMAP in bitmap-only fonts. For consistency with other bitmap-only fonts, we should ignore this flag of the font is not scalable. * src/truetype/ttgload.c (TT_Load_Glyph): Check if face is scalable when checking for FT_LOAD_NO_BITMAP. * docs/CHANGES: Start new chapter wtith this change. | ||
| 38272bf8 | 2024-12-16 14:29:36 | [ftstroke] Fix invalid pointer assignement to `arc` In `FT_Stroker_ConicTo` and `FT_Stroker_CubicTo` there is a `bez_stack`. `arc` is initialized with `arc = bez_stack` and is never set to point into any different object. The main loop looks like `while ( arc >= bez_stack )` which is depending on a later `arc -= 2` (or `arc -= 3`) to make `arc` point to before `bez_stack`. However, using pointer subtraction to make `arc` point outside the array is undefined behavior, and attempting to use the value in the loop predicate is "very" undefined behavior. (C99 "Additive operators" 6.5.6.8.) This particular undefined behavior was discovered as either hangs or MemorySantizer issues after "[InstCombine] Infer nuw for gep inbounds from base of object" [0]. With this change, clang can infer that `arc` must always point into the `bez_stack` object and therefore cannot be at a "negative index" so the predicate is always true. [0] https://github.com/llvm/llvm-project/commit/e21ab4d16b555c28ded307571d138f594f33e325 * src/base/ftstroke.c (FT_Stroker_ConicTo, FT_Stroker_CubicTo): test loop exit condition (there are no more arcs to process) before decrementing `arc` Fixes: #1307 | ||
| 59320b2d | 2024-12-04 16:55:10 | [cff] Fix leak of cmap data When `sfnt->load_face` succeeds it has already loaded any (optional) cmap data. As a result, a subsequent call to `sfnt->load_cmap` will overwrite the cmap data pointer with a new copy of the data but not free the old, leading to a leak. This is a fix for "* src/cff/cffobjs.c (cff_face_init): Better handling of Type0 fonts.". This still allows the cmap to be missing but avoids the leak by only calling `sfnt->load_cmap` when there is no `head` table (the font data is not being loaded as OpenType/CFF). * src/cff/cffobjs.c (cff_face_init): Fix leak Fixes: #1306 | ||
| 3f3e3de3 | 2024-11-06 06:28:41 | * src/cff/cffobjs.c (cff_face_init): Better handling of Type0 fonts. This issue relates to the PDF specification and its usage of CFF-based embedded Type0 fonts. For Type0 fonts containing CID-keyed descendant CFF-based fonts, the glyph index is the CID present in the content stream. As a result, there is no requirement for a 'cmap' table to be present in the font since the glyph indices are derived directly from the CIDs. FreeType throws an error when it doesn’t find a 'cmap' table for such an Open Type font containing CFF outlines. This commit relaxes this requirement for a 'cmap' table for such fonts. | ||
| 13944366 | 2024-10-15 18:07:55 | Move generic destroy to later in the face and size destruction. * src/base/ftobjs.c (destroy_size, destroy_face): This is such that the generic destroy can be used to call `FT_Done_Library`. For that to work, it needs to call it *after* having removed the face from the respective module. | ||
| f02bffad | 2024-10-14 11:47:31 | * src/truetype/ttgload.c (load_truetype_glyph): Rearrange. | ||
| 089ccb1b | 2024-10-13 12:14:43 | * src/smooth/ftgrays.c (gray_convert_glyph): Clear stack pointers. Fixes a dangling pointer warning, see #1299. | ||
| 5f20c892 | 2024-10-13 10:20:42 | apinames: Fix a buffer overrun for VMS platform. Some output formats may rewrite symbol names during the output, like the concatenation of "64__" suffix on VMS. To estimate sufficient size to store symbol name, pass the output format info to `names_add`. For VMS, `names_add` allocates longer buffer to append "64__". * apinames.c (SUFFIX_VMS_64ADDR): New macro of "64__". (main): Pass the format info to `read_header_file`. (read_header_file): Pass the format info to `names_add`. (names_add): Receive the format info, and reserve the symbol name buffer 4 byte longer in the case of VMS, to append the suffix in `names_dump`. | ||
| 26b545f3 | 2024-10-13 11:09:40 | apinames: Fix out-of-scope reference of a static array. * apinames.c (names_dump): For WATCOM_LBC format, the DLL name with no suffix is constructed on a static array temp[], but the scope is closed before use it. The declaration of temp[] is moved to the wider scope for the dumping part to refer it. | ||
| 0dd4eef6 | 2024-10-10 15:56:22 | Fix help message of apinames. * src/tools/apinames.c: The first header file must be given after the options. All arguments after the first header file are dealt as header files to be parsed, regardless with their leading "-". For example, "apinames include/freetype/freetype.h -dFREETYPE.DLL" warns "unable to open -dFREETYPE.DLL". Thus, the "header1" must be given after the arguments to be parsed as the options. | ||
| 83af801b | 2024-09-07 13:44:57 | * src/sfnt/ttsbit.c (tt_face_load_sbix_image): Respect metrics_only. Also fixes recursive flip. | ||
| 30080320 | 2024-09-06 13:43:47 | * src/sfnt/ttsbit.c (tt_face_load_sbix_image): Tweak loop. | ||
| 98283cb3 | 2024-09-06 17:03:58 | [sfnt] Support sbix graphicType 'flip'. * src/sfnt/ttsbit.c (tt_face_load_sbix_image): Currently undocumented by Apple, this flips the bitmap data horizontally. It is used on macOS in Apple Color Emoji; 19.4d6e1; 2024-02-05 (file `Apple Color Emoji.ttc`). Fixes issue #1282. | ||
| d2612e1c | 2024-08-26 07:01:19 | * src/sfnt/ttcmap.c (tt_cmap*_get_info): Remove casting. | ||
| f92c9655 | 2024-08-13 23:29:13 | Fix various typos. | ||
| 42608f77 | 2024-08-11 20:30:23 | * Version 2.13.3 released. ========================== Tag sources with `VER-2-13-3'. * docs/VERSION.TXT: Add entry for version 2.13.3. * docs/CHANGES: Updated. * docs/release, docs/README, builds/macs/README: Updated. * README, 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.13.2/2.13.3/, s/2132/2133/. * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3. * builds/unix/configure.raw (version_info): Set to 26:2:20. * CMakeLists.txt (VERSION_PATCH): Set to 3. | ||
| ed8b82ba | 2024-08-08 10:28:05 | Various minor documentation or formatting fixes. | ||
| 6b992aaa | 2024-08-11 19:44:13 | * src/*/*: Fix C++ compilation; fix clang warnings. | ||
| 1f72a120 | 2024-08-05 13:05:51 | * src/truetype/ttgxvar.c (ft_var_readpacked*): Minor. | ||
| e181911d | 2024-08-05 13:02:04 | * src/base/ftstream.c (FT_Stream_ReadFields): Switch to `FT_Offset`. | ||
| a48cddde | 2024-08-01 21:15:46 | * src/winfonts/winfnt.c (fnt_face_get_dll_font): Unwrap arithmetic. | ||
| 72e199e8 | 2024-08-01 21:12:41 | * src/base/ftstream.c (FT_Stream_ReadFields): Update condition. | ||
| 7c75b8a7 | 2024-08-01 19:14:44 | [truetype/GX] Use more robust conditions. * src/truetype/ttgxvar.c (ft_var_readpacked{points,deltas}): Rewrite conditions to avoid undefined behavior. | ||
| 5e116bb0 | 2024-07-30 21:51:51 | [truetype/GX] Read points and deltas more carefully. Hopefully fixes newly introduced buffer overflows: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=70807 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=70809 * src/truetype/ttgxvar.c (ft_var_readpacked{points,deltas}): Explicitly check stream frame limits and modify run counting. | ||
| 104f8544 | 2024-07-29 20:26:00 | [truetype/GX] Read stream more aggressively. With ample checks against the table size, we should be able to use macros without the limit checks and functional calls. * src/truetype/ttgxvar.c (ft_var_readpacked{points,deltas}): Use FT_NEXT_* instead of FT_GET_*. | ||
| 3f8edd23 | 2024-07-28 20:56:07 | * src/sfnt/ttload.c (tt_face_load_name): Shorten dereference. | ||
| d42bffd4 | 2024-07-28 20:32:41 | * src/autofit/afmodule.c (af_autofitter_load_glyph): Shorten deref. | ||
| 24888540 | 2024-07-28 19:42:49 | [bdf,pcf,winfonts,sfnt] Remove barely used marcros. * include/freetype/internal/ftobjs.h (FT_FACE_SIZE, FT_SIZE_FACE): Removed. * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Updated. * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Ditto. * src/winfonts/winfnt.c (FNT_Load_Glyph): Ditto * src/sfnt/ttbdf.c (tt_face_find_bdf_prop): Ditto. | ||
| 1452355d | 2024-07-18 09:31:19 | * src/truetype/ttobjs.c (tt_size_run_prep): Correct scaling of CVT values. This reverts the scaling behaviour introduced in commit 37580053. Fixes issue #1005. | ||
| 37cefe33 | 2024-06-13 12:01:54 | * psobjs.c (ps_table_add): Check length before calling `FT_MEM_CPY`. Fixes issue #1280. | ||
| bab9564a | 2024-06-26 05:39:11 | Make 'multi' build work again. * src/psaux/psobjs.c: Include `psft.h`. * src/sfnt/rules.mk (SFNT_DRV_SRC): Add `ttgpos.c`. Fixes issue #1284. | ||
| 73720c7c | 2024-06-23 10:58:00 | * src/truetype/ttgload.c (load_truetype_glyph): Unsigned fix. | ||
| 044d142b | 2024-06-20 22:16:51 | Use unsigned tags `FT_Outline`. This change comes along with 2a7bb4596f56 ans is only meant to reduce pointer casting in the code. * include/freetype/ftimage.h (FT_Outline): Do it. * src/*: Update `FT_Outline` users. | ||
| b1cbcb20 | 2024-06-20 15:00:20 | [ttgxvar] Avoid "applying zero offset to null pointer" In C it is undefined behavior to do arithmetic on a null pointer, including adding zero. When using NotoSansKhmer[wdth,wght].ttf UBSAN produces a report like ttgxvar.c:1052:31: runtime error: applying zero offset to null pointer when adding zero to `varData->deltaSet` (which is null) to produce `bytes`. Protect against all the potential issues of this kind by returning early if `varData->regionIdxCount == 0`. * src/truetype/ttgxvar.c (tt_var_get_item_delta): early return on no regions | ||
| 2a7bb459 | 2024-06-20 20:49:56 | Use unsigned point and contour indexing in `FT_Outline`. This doubles the number or allowed points, see https://github.com/harfbuzz/harfbuzz/issues/4752 Although it is hardly practical to use more than 32767 points, other font engines seem to support it. * docs/CHANGES: Announce it. * include/freetype/ftimage.h (FT_Outline): Do it and update limits. * src/*: Update `FT_Outline` users. | ||
| 2b9fdec5 | 2024-06-19 21:38:58 | * src/pfr/pfrgload.c (pfr_glyph_curve_to): Avoid casting. | ||
| 7a753c96 | 2024-06-18 21:14:58 | * src/base/ftgloadr.c (FT_GlyphLoader_Prepare): Minor refactoring. | ||
| 93a067e3 | 2024-06-18 17:48:41 | [base, autofit, psaux] Remove unnecessary casting. * src/autofit/afhints.c (af_glyph_hints_reload): Remove (short) casting. * src/base/ftgloadr.c (FT_GlyphLoader_Add): Ditto. * src/psaux/psobjs.c ({t1,cff,ps}_builder_{add,close}_contour): Ditto. | ||
| d41a855a | 2024-05-29 17:01:29 | [ttgxvar] Replace tabs with spaces Also clarify comments around conversion and clamping. * src/truetype/ttgxvar.c (ft_var_to_normalized): doit | ||
| 7ff43d3e | 2024-05-26 19:40:20 | [truetype/GX] Consolidate memory allocations. * src/truetype/ttgxvar.c (tt_face_vary_cvt, TT_Vary_Apply_Glyph_Deltas): Allocate and split bigger memory blocks, avoid unnecessary zeroing, do not copy shared tuples, revise error exit paths. | ||
| 3416ac16 | 2024-05-26 08:10:21 | Whitespace. | ||
| b6dbbd96 | 2024-05-24 17:38:14 | * src/truetype/ttgxvar.c (ft_var_apply_tuple): Reduce checks. | ||
| 70299c92 | 2024-05-23 22:50:32 | Revert "[truetype] Reduce allocation scope." This reverts commit 9ff4153cbfd60491f11bb56905ce6e20e94d23c7. | ||
| 9ff4153c | 2024-05-22 23:38:34 | [truetype] Reduce allocation scope. * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Reduce scope of `points_org` and 'points_out`. | ||
| 5f131cfd | 2024-05-21 16:24:43 | [cff, truetype] Validate variation axes immediately. Instead of validating variation axes in every access, OpenType specs suggest that peak = 0 be used to tag invalid ranges. This implements just that once during loading. * src/cff/cffload.c (cff_blend_build_vector): Move the range checks... (cff_vstore_load): ... here. * src/truetype/ttgxvar.c (tt_var_get_item_delta): Ditto... (tt_var_load_item_variation_store): ... ditto. | ||
| 99be2b31 | 2024-05-21 18:26:09 | [cff, truetype] Rearrange variation range checks. This should achieve quicker results for common cases. * src/cff/cffload.c (cff_blend_build_vector): Rearrange conditionals. * src/truetype/ttgxvar.c (tt_var_get_item_delta): Ditto. | ||
| 347276c1 | 2024-05-21 13:12:45 | * src/truetype/ttgxvar.c (tt_var_get_item_delta): Align with specs. | ||
| 39f2fbf8 | 2024-05-20 22:47:14 | * src/truetype/ttgxvar.c (tt_var_get_item_delta): Minor refactoring. | ||
| 4ccdc9f9 | 2024-05-20 18:53:57 | [cff] Optimize the blend vector computations. * src/cff/cffload.c (cff_blend_build_vector): Use FT_MulDiv and skip multiplying by 1. | ||
| b25265fe | 2024-05-19 22:58:23 | [bdf] Use concise macros. * src/bdf/bdflib.c (bdf_create_property): Use FT_STRDUP. (bdf_parse_glyphs_, bdf_parse_start_): Use FT_DUP for brevity. | ||
| 026fd5d4 | 2024-05-19 22:54:57 | [cache] Use FT_DUP to duplicate data. * src/cache/ftcsbits.c (ftc_sbit_copy_bitmap): Use concise FT_MEM_DUP. | ||
| d7cf931a | 2024-05-19 22:48:13 | [truetype, type1] Use FT_DUP to duplicate data. * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Use concise FT_DUP. * src/truetype/ttgxvar.c (TT_Get_MM_Var): Ditto. * src/type1/t1load.c (parse_subrs): Ditto. | ||
| b8db8197 | 2024-05-12 22:38:38 | [type1/MM] Safer handle arrays of different types. * src/type1/t1load.c (parse_blend_design_map): Separately allocate... (T1_Done_Blend): ... and free `design_points` and `blend_points`. | ||
| 5b1cde80 | 2024-05-11 23:27:34 | * src/type1/t1load.c (parse_blend_design_map): Add risky cast. | ||
| b875924a | 2024-05-10 23:01:23 | * src/pshinter/pshrec.c (ps_hints_stem): Correct argument. | ||
| 5858fa16 | 2024-05-07 18:19:58 | [colr] Avoid overflow in range checks In 32 bit builds `FT_ULong` is 32 bits and can silently overflow when a large number is read into one and then it is summed or multiplied with another number. Checks for range overflow must be written so that they themselves do not overflow. Also ensure that the table_size is always the first part of the range check and consistently use `<` or `<=`. * src/sfnt/ttcolr.c (tt_face_load_colr): Avoid overflow. (find_base_glyph_v1_record): Remove old work-around. Bug: https://issues.chromium.org/issues/41495455 Bug: https://issues.chromium.org/issues/40945818 | ||
| d0e3239f | 2024-05-06 13:39:06 | [sdf, bsdf] Use shared FT_SqrtFixed. FT_SqrtFixed (95b0fe2a6dff) is faster and does not overflow. * src/sdf/ftsdfcommin.h (square_root): Replace with a macro. * src/sdf/ftsdfcommin.c (square_root): Remove function. | ||
| 2edfd7e1 | 2024-05-04 16:42:47 | * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Remove FT_ABS. See https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=68679 | ||
| 7bd887f1 | 2024-05-03 16:04:35 | * src/sfnt/sfwoff2.c (woff2_open_font): Fix copy-paste typo. | ||
| 3f28a6b6 | 2024-05-03 15:44:57 | [woff,woff2] Limit the number of tables and use FT_MSB. The upper limit of 4095 is implied by the SFNT header format where the multiplication by 16 would overflow without it. * src/sfnt/sfwoff.c (woff_open_font): Updated. * src/sfnt/sfwoff2.c (woff2_open_font): Ditto. | ||
| 13d1180f | 2024-05-02 13:16:46 | [woff2] Disallow zero table font entries The existing code already disallows zero table woff2 overall, but still allows for individual CollectionFontEntry to create font instances with zero tables. Such fonts are not useful so error early. This also fixes an MSAN discovered issue where if a CollectionFontEntry numTables is zero then the sfnt_header was not fully initialized. * src/sfnt/sfwoff2.c (woff2_open_font): error on zero tables, always initalize sfnt_header Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=68384 | ||
| 4d504684 | 2024-05-01 23:19:31 | [sfnt] Use faster macros in checksums. * src/truetype/ttobjs.c (tt_synth_sfnt_checksum): Use FT_NEXT_XXX. * src/sfnt/sfwoff2.c (compute_ULong_sum): Use macros. | ||
| 13da9042 | 2024-05-01 00:34:21 | * src/sfnt/sfwoff2.c (compute_ULong_sum): Clean up. | ||
| 5962d3c1 | 2024-04-29 22:34:09 | * src/cache/ftccache.c (FTC_Cache_RemoveFaceID): Remove nodes instantly. | ||
| a209e1ad | 2024-04-29 17:54:30 | [cache] Remove unused `node_reset`. * src/cache/ftcmru.h (FTC_MruListClassRec): Remove `node_reset` field. * src/cache/ftcbasic.c (ftc_basic_{image,sbit}_family_class): Ditto. * src/cache/ftcmanag.c (ftc_face_list_class): Ditto. (ftc_size_node_reset): Remove function. * src/cache/ftcglyph.h: Fix comment. | ||
| f8f0d1a1 | 2024-04-29 16:58:59 | * src/cache/ftcmru.c (FTC_MruList_New): Do not reset nodes. Resetting of the size nodes can crash, if a parent face purge happens simultaneously and destroys the node. It is safer to create a new node. Fixes #1270, reopened with a separate issue. | ||
| 1168b1b5 | 2024-04-27 20:44:01 | * src/cache/ftcimage.c (ftc_inode_weight): Formatting. | ||
| 982bc838 | 2024-04-21 15:53:05 | [cache] Minor tweaks. * src/cache/ftcimage.c (ftc_inode_free): Remove unnecessary check. * src/cache/ftcmanag.c (FTC_Manager_Done): Do not zero before freeing. | ||
| 5a3bfa92 | 2024-04-20 23:28:17 | * src/cache/ftcbasic.c: Cosmetic harmonization. | ||
| 23e1d645 | 2024-04-20 12:01:58 | [cache] Reduce type mismatches. * src/cache/ftcbasic.c (FTC_BasicAttrRec): Match type of `load_flags` to its main purpose in `FT_Load_Glyph`. (FTC_ImageCache_Lookup{,Scaler},FTC_SBitCache_Lookup{,Scaler}): Updated. | ||
| 9a2d6d97 | 2024-04-19 14:45:39 | * src/cache/{ftcbasic.c,ftccmap.c}: Use FTC_INLINE. |