Commit graph

8439 commits

Author SHA1 Message Date
Ben Wagner
23b6cd27ff Fix leak of exec in tt_size_init_bytecode
* src/truetype/ttobjs.c (tt_size_init_bytecode): Call `TT_Done_Context`
on `exec` if it has not yet been assigned to `size->context`.

Bug: https://issues.oss-fuzz.com/issues/467782706
2025-12-11 12:18:15 -05:00
Alexei Podtelezhnikov
30e45abe93 * src/pcf/pcfdrivr.c (PCF_Face_Init): Handle charmap errors.
This is a quick fix for #1377, more clean-ups to follow.
2025-12-05 00:40:13 -05:00
Werner Lemberg
f75ae3d06d * src/sfnt/ttbdf.c (tt_face_load_bdf_props): Fix size test.
This prevents a potential overflow on 32bit systems.

Problem reported by Zhao Zijie <zijie4@illinois.edu>.
2025-12-04 07:51:39 +01:00
Werner Lemberg
5751c184cc Improve documentation of the 'BDF ' table as used in X11 .otb files.
Also do some minor code formatting.
2025-12-04 07:46:36 +01:00
Werner Lemberg
85161d7622 * src/otvalid/otvcommn.c (otv_FeatureList_validate): Fix array size check.
Reported by Marc Schönefeld.
2025-12-02 11:39:25 +01:00
Werner Lemberg
c54f1cbfa9 [otvalid] Minor formatting and comment fixes. 2025-12-02 11:39:25 +01:00
Alexei Podtelezhnikov
32fc0af222 [pshinter] Slightly simplify BlueShift application.
* src/pshinter/pshglob.c (psh_blues_scale_zones): Just divide.
2025-11-30 15:25:45 -05:00
Alexei Podtelezhnikov
04743f152a [pshinter] Slightly simplify BlueScale application.
* src/pshinter/pshglob.c (psh_globals_new): Update condition and
properly rescale BlueScale.
(psh_blues_scale_zones): Use it directly.
2025-11-30 15:24:42 -05:00
Alexei Podtelezhnikov
d783d336e6 [pshinter] Fix up degenerate contours.
* src/pshinter/pshalgo.c (psh_glyph_compute_extrema): Use correct
goto label and shortcut degenerate contours.
2025-11-30 12:44:04 -05:00
Alexei Podtelezhnikov
e63975ca64 * src/base/ftutil.c (FT_List_Finalize): Delay reading 'data'.
Fixes #1376.
2025-11-29 11:29:44 -05:00
Werner Lemberg
6a25214ae9 * src/autofit/afgsub.c (af_parse_gsub): Always init gsub_lookup_count.
Problem reported by Marc Schönefeld.
2025-11-29 07:00:41 +01:00
Werner Lemberg
582cea9ee1 [autofit] Fix handling of invalid GSUB lookup indices.
Problem reported by Marc Schönefeld.

HarfBuzz validates everything while processing OpenType tables in fonts.
However, the data returned by `hb_ot_layout_collect_lookups` is not
validated.  This commit adds proper checks.

* src/autofit/afglobal.h (AF_FaceGlobals): New field `gsub_lookup_count`.
* src/autofit/afgsub.c (af_parse_gsub): Set it.

* src/autofit/afadjust.c (af_reverse_character_map_new): Test result of
  `hb_set_next`.
2025-11-28 14:23:00 +01:00
Werner Lemberg
b848824d10 [sfnt] Fix GPOS handling.
Problem reported by Marc Schönefeld.

* src/sfnt/ttgpos.c (tt_face_validate_lookup_table, tt_face_load_gpos): Fix
  counting of fitting subtables by correctly rejecting invalid data.
2025-11-28 14:19:37 +01:00
Alexei Podtelezhnikov
590e35791d * builds/toplevel.mk (dist): Replace for with find ... -exec. 2025-11-27 22:21:35 -05:00
Suzuki, Toshiya (鈴木俊哉)
fe0a9649fc * builds/toplevel.mk (dist): -wholename -> -name.
POSIX does not request `find` to support '-wholename'.
`find ... -wholename '*/.git' -prune -o ...` can be
rewritten as `find ... -name '*/.git' -prune -o ...`
for POSIX find.  Fixes issue #1370.
2025-11-27 12:41:52 +00:00
suzuki toshiya
9d99611723 * .gitlab-ci.yml: update macos image to Tahoe:2025-09-30.
Fixes issue #1394.
2025-11-27 19:08:14 +09:00
Alexei Podtelezhnikov
6d4977d660 * builds/toplevel.mk (dist): Improve compatibility with BSD tar. 2025-11-17 12:12:34 -05:00
Alexei Podtelezhnikov
fc9cc5038e [cff] Handle underline position and thickness as integers.
This is done for consistency with Type 1 fonts.

* include/freetype/internal/cfftypes.h (CFF_FontRecDic): Change
the variable types.
* include/cff/cfftoken.h (CFF_FontRecDic): Change the parsing macros.
* src/cff/cffobjs.c (cff_face_init), src/cff/cffload.c (cff_subfont_load),
src/cff/cffdrivr.c (cff_ps_get_font_info): Update users.
2025-11-05 17:23:14 -05:00
suzuki toshiya
c97efd28ca * src/tools/apinames.c (names_add): Remove unrequired cast of
`nm->hash` to int, which has been unrequired since eba2781a.

Fixes issue #1361.
2025-11-05 20:45:35 +09:00
Suzuki, Toshiya (鈴木俊哉)
184910dbef * src/autofit/afgsub.c: Evaluate FT_CONFIG_OPTION_USE_HARFBUZZ
after <freetype/freetype.h> and others.

Fixes issue #1360.
2025-11-05 10:32:03 +00:00
Alexei Podtelezhnikov
3d871c5a0c Minor. 2025-11-04 20:08:04 -05:00
Alexei Podtelezhnikov
3532877461 [cff,cid,type1,type42] Fix up PS_FontInfo.
The italic angle is commonly specified in fractional degrees in
Type 1 fonts and its derivatives.  This change clarifies and fixes
these values.  Note that CFF fonts has always reported them as such,
but truncated the underline position and thickness.  Fixes #1367.

* include/freetype/t1tables.h (PS_FontInfoRec):
Use FT_Fixed for italic_angle.
* src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c:
Modify the italic_angle token.
* src/cff/cffdrivr.c (cff_ps_get_font_info): Fix the underline
position and thickness.

* docs/CHANGES: Note this change.
2025-11-04 19:21:49 -05:00
Alexei Podtelezhnikov
ae63cc0d13 * src/base/ftadvanc.c (ft_face_scale_advances_): Adjust scaling.
This is safe because advances are short originally.
2025-10-26 13:55:40 -04:00
Alexei Podtelezhnikov
0d410eb9aa [base] Refactor obtaining advances.
* src/base/ftadvanc.c (ft_load_advances): New separate function to
handle slow advances.
(FT_Get_Advance, FT_Get_Advances): Updated.
2025-10-26 13:28:32 -04:00
Alexei Podtelezhnikov
f238830d77 * src/truetype/ttgload.c (tt_loader_init): Reset compatibility.
This may fix #1262, credits to Honnesh Ramachandra.
    https://lists.nongnu.org/archive/html/freetype-devel/2025-10/msg00004.html
2025-10-16 22:35:53 -04:00
Werner Lemberg
4334f009e7 [autofit] Prevent signed integer overflow.
* src/autofit/aflatin.c (af_latin_stretch_top_tilde,
  af_latin_stretch_bottom_tilde, af_latin_align_top_tilde,
  af_latin_align_bottom_tilde,
  af_glyph_hints_apply_vertical_separation_adjustments): Use `ADD_LONG` and
  `SUB_LONG` for values that involve `FT_LONG_MAX` and `FT_LONG_MIN`.

Fixes issue #1363.
2025-09-28 08:13:38 +02:00
Werner Lemberg
7955c9b86a * src/bdf/bdfdriver.c (BDF_Glyph_Load): Use bdf->bdffont->bpp directly.
Fixes issue #1362.
2025-09-24 05:56:34 +02:00
Alan Coopersmith
41eab7e66d * tests/README.md: Fix a script name. 2025-09-17 19:30:55 -04:00
Werner Lemberg
03acd8923b [build] Don't use non-POSIX escapes in sed regexp.
* builds/unix/configure.raw (ftoption_set, ftoption_unset): Avoid `\>`.

Fixes issue #1358.
2025-09-14 11:38:18 +02:00
Werner Lemberg
66e1ec84d5 Typo. 2025-09-14 11:05:41 +02:00
Alexei Podtelezhnikov
7e14994b02 * include/freetype/internal/ftobjs.h (ft_default_raster): Relic removed. 2025-09-12 12:57:50 -04:00
Werner Lemberg
526ec5c47b * Version 2.14.1 released.
==========================

Tag sources with `VER-2-14-1'.

* docs/VERSION.TXT: Add entry for version 2.14.1.
* 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.14.0/2.14.1/, s/2140/2141/.

* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.

* builds/unix/configure.raw (version_info): Set to 26:4:20.
* CMakeLists.txt (VERSION_PATCH): Set to 1.
2025-09-11 13:16:53 +02:00
Behdad Esfahbod
566f8805f3 [base] Fix return values of two Font Variation functions.
* src/base/ftmm.c (FT_Set_Var_Design_Coordinates,
  FT_Set_Var_Blend_Coordinates): Do it.

Fixes issue #1355.
2025-09-10 14:22:49 +02:00
Werner Lemberg
53b9319bff * src/autofit/afgsub.c (af_map_lookup): Fix handling of lookup type 7.
Fixes issue #1356.
2025-09-10 14:14:43 +02:00
Alexei Podtelezhnikov
36f917cc6a * src/truetype/ttinterp.c (TT_Run_Context): Fix IUP tracking bits.
Correctly fixes #1353 and #1349.
2025-09-08 11:03:24 -04:00
Alexei Podtelezhnikov
3ac4907545 Typo! 2025-09-08 10:45:16 -04:00
Alexei Podtelezhnikov
89eba38e62 * src/truetype/ttinterp.c (TT_Run_Context): Reset IUP tracking bits.
Fixes #1353.
2025-09-08 10:43:35 -04:00
Behdad Esfahbod
e969f52986 [autofit] Fix HarfBuzz calling.
* src/autofit/afadjust.c (af_reverse_character_map_new)
  [FT_CONFIG_OPTION_USE_HARFBUZZ]: Use `ft_hb_enabled`.

Fixes issue #1354.
2025-09-08 05:57:19 +02:00
Werner Lemberg
9db5233ceb * docs/release: Use sshpass for SourceForge.net password. 2025-09-08 05:52:11 +02:00
Werner Lemberg
bdd560fc4b * docs/release: Fix scp usage with OpenSSH version >= 9.0.
Starting with this version, OpenSSH uses `scp` with the SFTP protocol as the
default.  However, SFTP is disabled on savannah.gnu.org since January 2025.
2025-09-08 05:42:23 +02:00
Werner Lemberg
007c46ebbf * Version 2.14.0 released.
==========================

Tag sources with `VER-2-14-0'.

* docs/VERSION.TXT: Add entry for version 2.14.0.
* 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.3/2.14.0/, s/2133/2140/.

* include/freetype/freetype.h (FREETYPE_MINOR): Set to 14.
(FREETYPE_PATCH): Set to 0.

* builds/unix/configure.raw (version_info): Set to 26:3:20.
* CMakeLists.txt (VERSION_MINOR): Set to 14.
(VERSION_PATCH): Set to 0.
2025-09-06 16:47:31 +02:00
Werner Lemberg
28223c5f99 * builds/toplevel.mk (do-dist): Download shallow clone of config.git.
No need for any other commit than the current one.
2025-09-06 16:47:31 +02:00
Werner Lemberg
32cb53904c Update all copyright notices. 2025-09-06 06:14:03 +02:00
Werner Lemberg
d3668e00da src/sfnt/ttload.c (tt_face_load_any): Correctly handle font containers.
Reported as

  https://issues.oss-fuzz.com/issues/424613326
2025-09-05 20:23:22 +02:00
Jouk Jansen
ba7eb5bed7 Clean up OpenVMS support.
This avoids cluttering the source code with VMS-specific changes.

* include/freetype/internal/ftcalc.h [__VMS], src/base/ftcalc.c
  [vms_auto64_source]: Remove.

* builds/vms/patch_ftcalc.sed: New file.

* vms_make.com: Change macro definitions while this script is running; we
  use `GNU sed` to inject the necessary preprocessor code on the fly.
2025-09-05 17:58:54 +00:00
Alexei Podtelezhnikov
c6cf32de3b * src/psaux/psauxmod.h (psaux_driver_class): Removed declaration. 2025-08-31 22:39:11 -04:00
Alexei Podtelezhnikov
61a4234260 [base] Use const FT_Module_Class.
This is intended to warn against modifying any fields in the class,
at compile-time and avoid crashes at run-time.

* include/freetype/internal/ftobjs.h (FT_ModuleRec): Do it.
* src/base/ftobjs.c (Destroy_Module, FT_Add_Module): Updated.
2025-08-29 16:59:50 -04:00
Alexei Podtelezhnikov
48f91b5331 * src/base/ftobjs.c (FT_Load_Glyph): Reduces scope of 'ttface'. 2025-08-27 11:16:07 -04:00
Alexei Podtelezhnikov
c0851258d0 * src/truetype/ttinterp.c: Fix some builds. 2025-08-25 12:35:50 -04:00
Werner Lemberg
8cbabc47da * subprojects/*.wrap: Updated. 2025-08-23 19:21:19 +02:00