Alexei Podtelezhnikov
e294a95ca8
* src/cid/cidload.c (parse_fd_array): Protect against trancation.
2021-10-11 23:25:29 -04:00
Alexei Podtelezhnikov
1029eb9377
[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.
2021-10-11 22:25:14 -04:00
Alexei Podtelezhnikov
77bd46e959
[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.
2021-10-10 23:12:12 -04:00
Alexei Podtelezhnikov
3b036820d6
[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.
2021-10-10 23:11:10 -04:00
Alexei Podtelezhnikov
012b4f2d48
* src/cid/cidload.c (cid_face_open): Streamline CIDCount check.
2021-10-08 22:14:12 -04:00
Alexei Podtelezhnikov
946df22165
* src/cid/cidload.c (cid_face_open): Streamline SubrCount check.
2021-10-07 22:44:53 -04:00
Alexei Podtelezhnikov
0313a11c4c
* src/cid/cidgload.c (cid_load_glyph): Fortify incremental loading.
2021-10-07 22:43:12 -04:00
Alexei Podtelezhnikov
22befeef82
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.
2021-10-07 22:41:56 -04:00
Alexei Podtelezhnikov
0f23ae2e80
* src/smooth/ftgrays.c (FT_DIV_MOD): Limit the ARM workaround.
2021-10-05 16:28:40 -04:00
Alexei Podtelezhnikov
ec6a458821
[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.
2021-10-04 23:10:59 -04:00
Alexei Podtelezhnikov
227445f613
[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.
2021-10-03 22:48:23 -04:00
Alexei Podtelezhnikov
d102a51438
[pshinter] Remove unnecessary check.
...
* src/pshinter/pshalgo.c (psh_hint_table_find_strong_points): Do not
check if direction is defined before checking how.
2021-10-03 22:45:42 -04:00
Alexei Podtelezhnikov
68fae526c4
* src/autofit/afhints.c (af_glyph_hints_reload): Decrease casting.
2021-09-30 22:59:04 -04:00
Alexei Podtelezhnikov
1d79c892cf
* src/tools/apinames.c: Facilitate OpenVMS linker options.
2021-09-29 22:17:31 -04:00
Alexei Podtelezhnikov
dd0ccdc3d3
* src/winfonts/winfnt.c (FNT_Face_Init): Correct reallocation.
2021-09-28 22:57:58 -04:00
Alexei Podtelezhnikov
a69320a9b2
[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.
2021-09-24 22:06:44 -04:00
Alexei Podtelezhnikov
a29e020059
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.
2021-09-23 23:10:26 -04:00
Alexei Podtelezhnikov
90b14882ec
[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.
2021-09-22 20:20:04 -04:00
Alexei Podtelezhnikov
b4dddd8244
[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.
2021-09-22 00:30:03 -04:00
Alexei Podtelezhnikov
892e7eadc9
* src/bdf/bdflib.c (_bdf_parse_{start,glyphs}): Use appropriate scanner.
2021-09-21 14:39:21 +00:00
Alexei Podtelezhnikov
6190360967
Minor.
2021-09-20 22:18:29 -04:00
Alexei Podtelezhnikov
71969d1edf
* src/cff/cffdrivr.c (cff_ps_get_font_{info,extra}): Use FT_QNEW.
2021-09-20 14:31:45 -04:00
Alexei Podtelezhnikov
529158983d
[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.
2021-09-18 07:05:55 -04:00
Edwin Steiner
6e1ef98a04
[cff] Explicitly set StandardEncoding or ExpertEncoding offsets.
...
Fixes #1097 .
* src/cff/cffload.c (cff_encoding_load): Set special offset values.
2021-09-16 23:08:46 -04:00
Alexei Podtelezhnikov
fce74b7365
[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.
2021-09-16 17:03:19 -04:00
Alexei Podtelezhnikov
79d14cc256
* src/cff/cffload.c (cff_fd_select_get): Remove casting.
2021-09-16 16:41:56 -04:00
Alexei Podtelezhnikov
ae516e6a43
* src/pcf/pcfread.c (pcf_read_TOC): Remove casting.
2021-09-16 16:39:23 -04:00
Alexei Podtelezhnikov
801b7540dc
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.
2021-09-14 22:55:50 -04:00
Alexei Podtelezhnikov
49270c1701
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.
2021-09-14 21:32:43 -04:00
Alexei Podtelezhnikov
9a4c846e60
[cache] Revert to some zeroing.
...
* src/cache/ftccache.c (ftc_cache_init, ftc_cache_resize): Zero
`buckets` again to fix some crashes.
2021-09-14 21:25:47 -04:00
Alexei Podtelezhnikov
0a8ee851e0
* src/pshinter/pshrec.c (ps_mask_table_merge_all): Tweak loops.
...
Fixes fallout from 731d0b6856
reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=38685
2021-09-14 10:26:37 -04:00
Alexei Podtelezhnikov
731d0b6856
[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.
2021-09-13 16:29:08 -04:00
Alexei Podtelezhnikov
058f3f2d7d
[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.
2021-09-13 16:24:25 -04:00
Alexei Podtelezhnikov
59b43ae663
* src/base/ftobjs.c (FT_CMap_New): Revert to zeroing.
...
Fixes fallout from c1fa7aa2bc
, reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=38641
2021-09-13 16:16:18 -04:00
Alexei Podtelezhnikov
073ff2d77e
[truetype] Clean up `exec` initialization.
...
* src/truetype/ttinterp.c (Init_Context): Absorbed into...
(TT_New_Context): ... this function.
2021-09-13 00:04:45 -04:00
Alexei Podtelezhnikov
fab94f9fcc
[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.
2021-09-12 23:30:07 -04:00
Alexei Podtelezhnikov
c1fa7aa2bc
[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.
2021-09-12 23:25:46 -04:00
Alexei Podtelezhnikov
a8e8d9d7a4
[cache, psaux] Remove zeros.
...
* src/cache/ftcmru.c (FTC_MruList_New): Remove initialization.
* src/psaux/psstack.c (cf2_stack_init): Ditto.
2021-09-12 23:21:32 -04:00
Alexei Podtelezhnikov
9870b6c07e
[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.
2021-09-12 14:32:22 -04:00
Alexei Podtelezhnikov
2d57b05928
* src/cache/ftcmanag.c (FTC_Manager_New): Add missing zero.
...
Fixes fall out from a7b199d081
.
2021-09-11 10:38:08 -04:00
Alexei Podtelezhnikov
5b626281f1
[truetype] Tweak `hdmx` checking.
...
Fixes #1096 .
* src/truetype/ttpload.c (tt_face_load_hdmx): Account for padding.
2021-09-10 10:19:07 -04:00
Alexei Podtelezhnikov
e942a31007
[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.
2021-09-09 22:17:46 -04:00
Alexei Podtelezhnikov
c350aac099
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.
2021-09-08 12:18:23 -04:00
Alexei Podtelezhnikov
63806aad9f
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.
2021-09-08 10:54:44 -04:00
Werner Lemberg
77dcc5ed6a
src/tools/ftrandom/ftrandom.c (_XOPEN_SOURCE): Set to 600.
...
This allows C99 compilation on Solaris.
Problem reported by Mojca Miklavec.
2021-09-07 18:51:53 -07:00
Werner Lemberg
60a93ea231
[dlg] Synchronize with upstream.
...
* src/dlg/dlgwrap.c (_XOPEN_SOURCE): Set to 600.
Fixes #1093 .
2021-09-07 06:40:55 -07:00
Alexei Podtelezhnikov
aee1fd3bb8
Cosmetic zeros.
2021-09-03 22:13:22 -04:00
Alexei Podtelezhnikov
7bf655b228
* src/bdf/bdflib.c (_bdf_parse_start): Keep parser memory.
2021-09-03 11:31:41 -04:00
Alexei Podtelezhnikov
7f8f0c1c70
[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.
2021-09-02 23:30:31 -04:00
Alexei Podtelezhnikov
a7b199d081
* src/cache/ftcmanag.c (FTC_Manager_New): Avoid some zeroing.
2021-09-02 22:58:50 -04:00