-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathChangeLog
More file actions
11795 lines (7265 loc) · 383 KB
/
ChangeLog
File metadata and controls
11795 lines (7265 loc) · 383 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2026-03-22 Werner Lemberg <wl@gnu.org>
* Version 2.14.3 released.
==========================
Tag sources with `VER-2-14-3'.
* docs/VERSION.TXT: Add entry for version 2.14.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.14.2/2.14.3/, s/2142/2143/.
* include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
* builds/unix/configure.raw (version_info): Set to 26:6:20.
* CMakeLists.txt (VERSION_PATCH): Set to 3.
2026-03-22 Werner Lemberg <wl@gnu.org>
* subprojects/harfbuzz.wrap: Updated.
2026-03-22 David Pokora <david.pokora@trailofbits.com>
[psaux] Avoid stack overflow.
* src/psaux/t1.decode.c (t1_decoder_parse_charstrings) [op_pop]: Check stack
size.
Fixes issue #1406.
2026-03-22 Werner Lemberg <wl@gnu.org>
* src/psaux/t1decide.c (t1_decoder_parse_charstrings): Fix bounds check.
During charstring processing, the `decoder->len_buildchar` field can be
corrupted. Avoid this by caching this value in a local variable at function
entry.
Based on a patch submitted by David Pokora <david.pokora@trailofbits.com>.
Fixes issue #1405.
2026-03-20 Werner Lemberg <wl@gnu.org>
ttnameid.h: Minor documentation improvement.
2026-03-20 Werner Lemberg <wl@gnu.org>
* src/sdf/ftsdf.c (sdf_generate_bounding_box): Fix thinko.
Bug introduced in commit bda1d87f694dd.
We would need an `FT_NEW_ARRAY_MULT` array...
Reported as
https://issues.oss-fuzz.com/issues/494362618
2026-03-19 Alexei Podtelezhnikov <apodtele@gmail.com>
[sfnt/COLRv0] Revise sanity checks.
This re-implements 6d62076a and potentially fixes #1404.
* src/sfnt/ttcolr.c (tt_face_get_colr_layer): Rely on validated total num_layers.
2026-03-19 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/truetype/ttgload.c (TT_Process_Composite_Glyph): Fix allocation.
Fixes #1403, proposed by Chris Anderson.
2026-03-18 Werner Lemberg <wl@gnu.org>
* src/sdf/ftsdf.c (sdf_generate_bounding_box): Fix allocation.
Reported in
https://mail.gnu.org/archive/html/freetype-devel/2026-02/msg00005.html
2026-03-11 Werner Lemberg <wl@gnu.org>
Update all copyright notices.
2026-03-10 Alexei Podtelezhnikov <apodtele@gmail.com>
.gitlab-ci.yml: Upgrade Windows pipelines.
2026-03-10 Alexei Podtelezhnikov <apodtele@gmail.com>
[base] Reintroduce overall rendering limits.
* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Limit absolute
outline coordinnates to prevent integer issues downstream.
2026-03-10 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Fix memory leak.
This leak was introduced in 85c8efe0afa5ad by overlooking the
direct `ft_bitmap_glyph_init` call (now gone). Fixes #1399,
also reported earlier:
https://issues.oss-fuzz.com/issues/482909897.
2026-03-10 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/raster/ftraster.c (Conic_To, Cubic_To): Avoid UB.
Fixes #1396.
2026-03-10 Alexei Podtelezhnikov <apodtele@gmail.com>
[stroker] Actually validate outlines.
Fixes #1400.
* src/base/ftstroke.c (FT_Glyph_Stroke): Check for `GetCount` error.
(ft_stroke_border_get_counts): Actually return expected error.
(FT_Glyph_Stroke): Minor.
2026-03-09 Miguel Sousa <@miguelsousa>
* src/sfnt/ttobjs.c (tt_size_init_bytecode): Be more generous.
Fixes issue #1137.
2026-03-09 Werner Lemberg <wl@gnu.org>
* src/sfnt/ttgpos.c (tt_face_load_gpos): Correctly release `gpos`.
This is a follow-up to issue #1398.
2026-03-09 Dominik Röttsches <drott@chromium.org>
[sfnt] Use array count in sanitization of `BaseGlyphPaintRecord` list.
* src/sfnt/ttcolr.c (tt_face_load_colr): Compute correct length
of `BaseGlyphPaintRecord` array size.
Fixes issue #1397.
2026-03-09 Werner Lemberg <wl@gnu.org>
* src/sfnt/ttgpos.c (tt_face_validate_pair_pos2): Correct limit check.
Fixes issue #1398.
2026-03-09 Werner Lemberg <wl@gnu.org>
* src/truetype/ttgload.c (load_truetype_glyph): Limit recursion.
Fixes issue #1395.
2026-03-08 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/raster/ftraster.c (Set_High_Precision): Limit size.
This should avoid integer overflows:
https://issues.oss-fuzz.com/issues/490433932
https://issues.oss-fuzz.com/issues/490464129
2026-03-06 Werner Lemberg <wl@gnu.org>
[cid] Add boundary check in incremental interface.
* src/cid/cidgload.c (cid_load_glyph) [FT_CONFIG_OPTION_INCREMENTAL]:
Validate `fd_select`.
Fixes issue #1394.
2026-03-06 Werner Lemberg <wl@gnu.org>
* src/sfnt/ttgpos.c (tt_face_get_pair_pos1_kerning): Typo.
This could lead to make FreeType miss some kerning pairs.
Fixes issue #1393.
2026-03-06 Werner Lemberg <wl@gnu.org>
* src/sfnt/ttgpos.c (tt_face_get_class): Fix range check.
Fixes issue #1392.
2026-03-06 Alexei Podtelezhnikov <apodtele@gmail.com>
[base] Adjust rendering limits.
* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Check width and
height directly. Fixes #1390.
2026-03-03 Debbie Goldsmith <goldsmit@apple.com>
[truetype] Reject fonts without 'glyf' and 'loca' table.
* src/truetype/ttobjs.c (tt_face_init): Add check.
2026-03-03 Werner Lemberg <wl@gnu.org>
Minor whitespace.
2026-03-03 Werner Lemberg <wl@gnu.org>
CMakeLists.txt: Formatting.
2026-03-02 Werner Lemberg <wl@gnu.org>
* subprojects/*: Fix meson wrap files.
2026-03-01 Werner Lemberg <wl@gnu.org>
* Version 2.14.2 released.
==========================
Tag sources with `VER-2-14-2'.
* docs/VERSION.TXT: Add entry for version 2.14.2.
* 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.1/2.14.2/, s/2141/2142/.
* include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
* builds/unix/configure.raw (version_info): Set to 26:5:20.
* CMakeLists.txt (VERSION_PATCH): Set to 2.
2026-03-01 Werner Lemberg <wl@gnu.org>
* subprojects/*.wrap: Updated.
2026-03-01 Werner Lemberg <wl@gnu.org>
Very minor doc fixes.
2026-02-23 Alexei Podtelezhnikov <apodtele@gmail.com>
[truetype] Clean up TT_Load_Context.
* src/truetype/ttinterp.c (TT_Load_Context): Remove return type.
* src/truetype/ttinterp.h (TT_Load_Context): Update signature.
* src/truetype/ttobjs.c (tt_size_run_{fpgm,prep}): Update callers.
* src/truetype/ttgload.c (tt_loader_init): Ditto.
2026-02-21 Alexei Podtelezhnikov <apodtele@gmail.com>
[truetype] Use FT_QALLOC_MULT.
* src/truetype/ttgxvar.c (tt_var_load_item_variation_store): Here.
This call provides builtin overflow protection. See #1382.
2026-02-21 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/base/ftbitmap.c (FT_Bitmap_Blend): Use FT_ALLOC_MULT.
This call is fortified with builtin overflow checks.
2026-02-21 Alexei Podtelezhnikov <apodtele@gmail.com>
[sdf] Substitute allocation macros.
* src/sdf/ftsdf.c (sdf_generate_bounding_box,
sdf_generate_with_overlaps): Use more robust macros.
2026-02-21 Alexei Podtelezhnikov <apodtele@gmail.com>
[base] Clean up bitmap allocations.
* src/base/src/base/ftobjs.c (ft_glyphslot_alloc_bitmap): Use preset
dimensions and call FT_MEM_ALLOC_MULT.
* include/freetype/internal/ftobjs.h (ft_glyphslot_alloc_bitmap):
Updated signature...
* src/*: ... and all callers.
2026-02-20 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/sfnt/ttcolr.c (tt_face_colr_blend_layer): Use FT_ALLOC_MULT.
Fixes #1389. The overflow is detected in ft_mem_qrealloc.
2026-02-08 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/base/ftglyph.c (ft_bitmap_glyph_init): Always copy in full.
Other glyph formats never perform lazy copy. Fixes #1385.
2026-02-07 Alexei Podtelezhnikov <apodtele@gmail.com>
* include/freetype/config/mac-support.h: Check for FT_MACINTOSH.
Fixes warnings reported in !414.
2026-02-04 Alexei Podtelezhnikov <apodtele@gmail.com>
[pshinter] Merge extrema and inflex analyses.
Any point on the horizontal or vertical segment, which can either
be either extreme or inflection point is now marked. This makes
separate inflection algorithm unnecessary. This simplifies the
algorithm without noticeable rendering differences.
* src/pshinter/pshalgo.c (psh_glyph_compute_extrema): Rewrite
to detect both extrema and inflection points. Determine the
their direction instantly.
2026-02-04 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/sfnt/ttgpos.c (tt_face_validate_*): Fix check signedness.
This is an alternative to !398 without signed -1.
2026-01-28 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/sfnt/sfwoff2.c (reconstruct_glyf): Revise variables.
This should fix #1379 while resonstructing the code intent.
2026-01-26 Alexei Podtelezhnikov <apodtele@gmail.com>
[base, smooth] Implement direct LCD filtering.
Applying an LCD filter to spans rather than the entire image improves
the performance of ClearType-like rendering by about 40% at 32 ppem
and much more at larger sizes. Small rounding differences are expected.
* src/smooth/ftsmooth.c (ft_smooth_raster_lcd, ft_smooth_lcd_spans,
ft_smooth_raster_lcdv, ft_smooth_lcdv_spans, TOrigin): Implement it.
* include/freetype/internal/ftobjs.h (FT_LibraryRec): lcd_filter_func gone.
* src/base/ftlcdfil.c (ft_lcd_filter_fir): Removed.
(ft_lcd_padding): Use padding sufficient for any 5-tap filter.
(FT_Library_SetLcdFilterWeights, FT_Library_SetLcdFilter): Updated.
* docs/CHANGES: Updated.
2026-01-25 Alexei Podtelezhnikov <apodtele@gmail.com>
[base, smooth] Remove LCD filter from face properties.
This removes the internal face property that sets the filtering weights.
The global filtering algorithms and weights are now optimized to work
well under all conditions.
* include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Do it.
* include/freetype/freetype.h (FT_Face_Properties): Revised docs.
* include/freetype/ftparams.h (FT_PARAM_TAG_LCD_FILTER_WEIGHTS): Ditto.
* src/base/ftlcdfil.c (ft_lcd_padding): Updated.
* src/base/ftobjs.c (ft_open_face_internal, FT_Face_Properties): Ditto.
* src/smooth/ftsmooth.c (ft_smooth_render): Ditto.
* docs/CHANGES: Updated.
2026-01-25 Alexei Podtelezhnikov <apodtele@gmail.com>
[base] Remove legacy LCD filter.
* src/base/ftlcdfil.c (_ft_lcd_filter_legacy): Removed.
(FT_Library_SetLcdFilter): Updated.
* include/freetype/ftlcdfil.h (FT_LcdFilter): Updated.
* doc/CHANGES: Updated.
2026-01-22 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/svg/ftsvg.c: Use FT_ALLOC_MULT.
Fixes #1378.
2026-01-19 Harish Raja Selvan <harish.rajaselvan@multicorewareinc.com>
* .gitlab-ci.yml: Add MSBuild for ARM64.
2026-01-18 Alexei Podtelezhnikov <apodtele@gmail.com>
[base, smooth] Fortify direct rendering.
This is a better fix for #1384, which is rather about signed overflow.
* include/freetype/ftimage.h (FT_Span): Use unsigned position.
* src/smooth/ftgrays.c (gray_sweep_direct): Sync with FT_Span.
* src/smooth/ftsmooth.c (ft_smooth_render): Remove redundant shift.
* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Readjust limits.
2026-01-16 Alexei Podtelezhnikov <apodtele@gmail.com>
[base] Maintain overall rendering limits.
Reject rendering of outlines that stretch beyond 32767 pixels from
the origin, which is further restricted to 10922 horizontal pixels
for LCD rendering with ClearType-like algorithms. 16-bit FT_Span is
one of the reasons to have this limit imposed, fixes #1384.
* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Impose global
rendering limits.
2026-01-13 Harry Sintonen <sintonen@iki.fi>
* src/autofit/ft-hb-ft.c (ft_hb_ft_reference_table): Use `ft_sfree`.
2026-01-10 Alexei Podtelezhnikov <apodtele@gmail.com>
[base] Set ppem-based rendering limits.
Many rendering timeouts occur when the outline stretches far beyond
the Em size. Limiting the bounding box to 10 Em should reject such
requests. It is still to possible scribble excessively within the set
limits. At least, the memory usage will be curtained.
* src/base/ftobjs.c (ft_glyphslot_free_bitmap): Revise limits based
on ppem when available.
2026-01-07 Werner Lemberg <wl@gnu.org>
[autofit] Prevent signed integer overflow.
Reported as
https://issues.oss-fuzz.com/issues/473887994
https://issues.oss-fuzz.com/issues/473912282
* src/autofit/afatin.c (af_latin_align_top_tilde,
af_latin_align_bottom_tilde), src/autofit/afloader.c
(af_loader_load_glyph): Use `FT_PIX_ROUND_LONG`, `FT_PIX_CEIL_LONG`, and
`SUB_LONG`.
2026-01-06 Werner Lemberg <wl@gnu.org>
[truetype] Prevent signed integer overflow.
Reported as
https://issues.oss-fuzz.com/issues/473582311
* src/truetype/ttinterp.c (Ins_MDRP): Use `ADD_LONG` and `SUB_LONG`.
2026-01-06 Werner Lemberg <wl@gnu.org>
[autofit] Prevent signed integer overflow.
Reported as
https://issues.oss-fuzz.com/issues/473582304
* src/autofit/afloader.c (af_loader_load_glyph): Use `ADD_LONG`.
2026-01-05 Ben Wagner <bungeman@chromium.org>
Fix leak of exec->FDefs in tt_size_init_bytecode
2026-01-04 Werner Lemberg <wl@gnu.org>
[autofit] Prevent signed integer overflow.
Reported as
https://issues.oss-fuzz.com/issues/471525116
* src/autofit/aflatin.c (af_latin_stretch_top_tilde,
af_latin_stretch_bottom_tilde): Use `MUL_LONG`.
2026-01-04 Celeste Liu <uwu@coelacanthus.name>
[base] Fix support for format 13 charmaps.
According to the OpenType specification of the 'cmap' table, the pair (0,6)
for platform and encoding IDs is used for format 13 charmap tables. Commit
ba6f3e18 (from 2017-01-17) introduced the `TT_APPLE_ID_FULL_UNICODE` macro
(i.e., encoding_id == 6, added to OpenType 1.8); however, the corresponding
cmap selection code wasn't updated.
Unicode's Last Resort font (https://github.com/unicode-org/last-resort-font)
can be used to test a format 13 charmap.
Fixes issue #1383.
* src/base/ftobjc.s (find_unicode_charmap): Support
`TT_APPLE_ID_FULL_UNICODE`.
2026-01-03 Werner Lemberg <wl@gnu.org>
[ttgxvar] Check for overflow in array size computation.
Problem reported and analyzed by povcfe <povcfe2sec@gmail.com>.
Fixes issue #1382.
* src/truetype/ttgxvar.c (tt_var_load_item_variation_store): Do it.
2025-12-11 Ben Wagner <bungeman@chromium.org>
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-05 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/pcf/pcfdrivr.c (PCF_Face_Init): Handle charmap errors.
This is a quick fix for #1377, more clean-ups to follow.
2025-12-04 Werner Lemberg <wl@gnu.org>
* 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 Werner Lemberg <wl@gnu.org>
Improve documentation of the 'BDF ' table as used in X11 `.otb` files.
Also do some minor code formatting.
2025-12-02 Werner Lemberg <wl@gnu.org>
* src/otvalid/otvcommn.c (otv_FeatureList_validate): Fix array size check.
Reported by Marc Schönefeld.
2025-12-02 Werner Lemberg <wl@gnu.org>
[otvalid] Minor formatting and comment fixes.
2025-11-30 Alexei Podtelezhnikov <apodtele@gmail.com>
[pshinter] Slightly simplify BlueShift application.
* src/pshinter/pshglob.c (psh_blues_scale_zones): Just divide.
2025-11-30 Alexei Podtelezhnikov <apodtele@gmail.com>
[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 Alexei Podtelezhnikov <apodtele@gmail.com>
[pshinter] Fix up degenerate contours.
* src/pshinter/pshalgo.c (psh_glyph_compute_extrema): Use correct
goto label and shortcut degenerate contours.
2025-11-29 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/base/ftutil.c (FT_List_Finalize): Delay reading 'data'.
Fixes #1376.
2025-11-29 Werner Lemberg <wl@gnu.org>
* src/autofit/afgsub.c (af_parse_gsub): Always init `gsub_lookup_count`.
Problem reported by Marc Schönefeld.
2025-11-28 Werner Lemberg <wl@gnu.org>
[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 Werner Lemberg <wl@gnu.org>
[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 Alexei Podtelezhnikov <apodtele@gmail.com>
* builds/toplevel.mk (dist): Replace `for` with `find ... -exec`.
2025-11-27 Suzuki, Toshiya (鈴木俊哉) <mpsuzuki@hiroshima-u.ac.jp>
* 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 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
* .gitlab-ci.yml: update macos image to Tahoe:2025-09-30.
Fixes issue #1394.
2025-11-17 Alexei Podtelezhnikov <apodtele@gmail.com>
* builds/toplevel.mk (dist): Improve compatibility with BSD tar.
2025-11-05 Alexei Podtelezhnikov <apodtele@gmail.com>
[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 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
* 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 Suzuki, Toshiya (鈴木俊哉) <mpsuzuki@hiroshima-u.ac.jp>
* src/autofit/afgsub.c: Evaluate FT_CONFIG_OPTION_USE_HARFBUZZ
after <freetype/freetype.h> and others.
Fixes issue #1360.
2025-11-05 Alexei Podtelezhnikov <apodtele@gmail.com>
Minor.
2025-11-05 Alexei Podtelezhnikov <apodtele@gmail.com>
[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-10-26 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/base/ftadvanc.c (ft_face_scale_advances_): Adjust scaling.
This is safe because advances are short originally.
2025-10-26 Alexei Podtelezhnikov <apodtele@gmail.com>
[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-17 Alexei Podtelezhnikov <apodtele@gmail.com>
* 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-09-28 Werner Lemberg <wl@gnu.org>
[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-24 Werner Lemberg <wl@gnu.org>
* src/bdf/bdfdriver.c (BDF_Glyph_Load): Use `bdf->bdffont->bpp` directly.
Fixes issue #1362.
2025-09-18 Alan Coopersmith <alan.coopersmith@oracle.com>
* tests/README.md: Fix a script name.
2025-09-14 Werner Lemberg <wl@gnu.org>
[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 Werner Lemberg <wl@gnu.org>
Typo.
2025-09-12 Alexei Podtelezhnikov <apodtele@gmail.com>
* include/freetype/internal/ftobjs.h (ft_default_raster): Relic removed.
2025-09-11 Werner Lemberg <wl@gnu.org>
* 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-10 Behdad Esfahbod <behdad@behdad.org>
[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 Werner Lemberg <wl@gnu.org>
* src/autofit/afgsub.c (af_map_lookup): Fix handling of lookup type 7.
Fixes issue #1356.
2025-09-08 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/truetype/ttinterp.c (TT_Run_Context): Fix IUP tracking bits.
Correctly fixes #1353 and #1349.
2025-09-08 Alexei Podtelezhnikov <apodtele@gmail.com>
Typo!
2025-09-08 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/truetype/ttinterp.c (TT_Run_Context): Reset IUP tracking bits.
Fixes #1353.
2025-09-08 Behdad Esfahbod <behdad@behdad.org>
[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 Werner Lemberg <wl@gnu.org>
* docs/release: Use `sshpass` for SourceForge.net password.
2025-09-08 Werner Lemberg <wl@gnu.org>
* 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-06 Werner Lemberg <wl@gnu.org>
* 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 Werner Lemberg <wl@gnu.org>
* builds/toplevel.mk (do-dist): Download shallow clone of `config.git`.
No need for any other commit than the current one.
2025-09-06 Werner Lemberg <wl@gnu.org>
Update all copyright notices.
2025-09-05 Werner Lemberg <wl@gnu.org>
src/sfnt/ttload.c (tt_face_load_any): Correctly handle font containers.
Reported as
https://issues.oss-fuzz.com/issues/424613326
2025-09-05 Jouk Jansen <joukj@hrem.nano.tudelft.nl>
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-01 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/psaux/psauxmod.h (psaux_driver_class): Removed declaration.
2025-08-29 Alexei Podtelezhnikov <apodtele@gmail.com>
[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-27 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/base/ftobjs.c (FT_Load_Glyph): Reduces scope of 'ttface'.
2025-08-25 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/truetype/ttinterp.c: Fix some builds.
2025-08-23 Werner Lemberg <wl@gnu.org>
* subprojects/*.wrap: Updated.
2025-08-23 Werner Lemberg <wl@gnu.org>
Updating `CHANGES` file; minor fixes elsewhere (mostly formatting).
2025-08-20 Alexei Podtelezhnikov <apodtele@gmail.com>
[truetype] Fix compilation without bytecode.
Fixes #1351 and various warnings about unused variables.
* src/truetype/ttinterp.c: Put the entire body under #ifdef.
* src/truetype/ttgload.c (TT_Process_Composite_Glyph): Relocate
some declarations.
* src/truetype/ttinterp.h: Remove some #ifdef conditions.
* src/truetype/ttobjs.c (tt_size_done): Modified.
2025-08-14 Alexei Podtelezhnikov <apodtele@gmail.com>
[truetype] Small fix in the incremental interface (again).
Fixes #1299, last [-Wdangling-pointer=] warning.
* src/truetype/ttgload.c (load_truetype_glyph): Restore original stream
on exit unconditionally.
2025-08-14 Alexei Podtelezhnikov <apodtele@gmail.com>
[truetype] Small fix in the incremental interface.
Fixes #1299, last [-Wdangling-pointer=] warning.
* src/truetype/ttgload.c (load_truetype_glyph): Restore original stream
on exit.
2025-08-14 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/autofit/afgsub.c: Fix a warning.
Fixes [-Wunused-function] warning without HarfBuzz.
2025-08-11 Alexei Podtelezhnikov <apodtele@gmail.com>
* */ftoption.h: Update C99 wording.
2025-08-11 Alexei Podtelezhnikov <apodtele@gmail.com>
* */ftoption.h: Note C99 compliance.
2025-08-08 Behdad Esfahbod <behdad@behdad.org>
[ttgxvar] Fix caching of scalars when there are intermediate tuples.
For example, with `GoogleSansFlex-Regular.ttf` at ROND=100, the 'Q' glyph
was misrendering.
* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Reset `tupleScalars`
earlier.
2025-08-05 Jouk Jansen <joukj@hrem.nano.tudelft.nl>
Improvements to OpenVMS support.
* include/freetype/internal/ftcalc.h [__VMS]: Undefine `FT_MulFix`.
* src/base/ftcalc.c [vms_auto64_source]: Define `FT_MulFix`.
* vms_make.com: Also create 32bit version of the FreeType library.
2025-08-04 Alexei Podtelezhnikov <apodtele@gmail.com>
* docs/CHANGES: Mention 'ftmulti' improvements.
2025-08-02 Alexei Podtelezhnikov <apodtele@gmail.com>
[type1/MM] Correctly reset the default instance.
Call T1_Set_MM_WeightVector, which actually sets default weights,
instead of TT_Set_MM_Blend, which just centers the axes.
* src/type1/t1load.c (T1_Reset_MM_Blend): Do it.
2025-08-01 Alexei Podtelezhnikov <apodtele@gmail.com>
[truetype/v40] Fix ROUND_XY_TO_GRID handling.
Fixes #1346.
* src/truetype/ttgload.c (TT_Process_Composite_Component): Round
the x-position unless in backward_compatibility mode.
2025-07-30 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/truetype/ttinterp.c (Ins_MDRP,MIRP): Small tweak.
2025-07-30 Alexei Podtelezhnikov <apodtele@gmail.com>
[truetype] Tweak size management.
* include/freetype/internal/services/svmetric.h (FT_Size_Reset_Func):
Update typedef, do not return error.
* src/truetype/ttobjs.c (tt_size_reset_height): Move the PPem error
handling from here...
(tt_size_reset): ... to here to improve readability.
src/truetype/ttobjs.h (tt_size_reset_height): Update prototype.
2025-07-30 Alexei Podtelezhnikov <apodtele@gmail.com>
[truetype] Relocate color compensation (cont'd).
* src/truetype/ttinterp.c (Inc_MDAR,MIAP,MDRP,MIRP): Fix forgotten
rounding.
2025-07-29 Alexei Podtelezhnikov <apodtele@gmail.com>
[truetype] Fix EVEN and ODD instructions.
It is possible to have a fractional part after rounding when rounding
to half-grid or super-rounding. The specs call to ignore the fractional
part in that case.
^ src/truetype/ttinterp.c (Ins_EVEN, Ins_ODD): Fix mask.
2025-07-28 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/truetype/ttinterp.c: Fix comments.
2025-07-28 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/truetype/ttinterp.h (TT_Round_Func): Fix argument.