Alexei Podtelezhnikov
79ed536d01
* src/psaux/psobjs.c (ps_parser_load_field): Tweak allocation macro.
2021-05-06 23:46:46 -04:00
Alexei Podtelezhnikov
44c59414eb
* src/sfnt/sfobjs.c (sfnt_load_face): Tweak allocation macro.
2021-05-06 22:54:03 -04:00
Alexei Podtelezhnikov
998c7c0f1c
* src/cid/cidload.c (cid_read_subrs): Tweak allocation macro.
2021-05-06 22:51:37 -04:00
Alexei Podtelezhnikov
2d95784885
* src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Tweak allocation.
2021-05-06 22:49:13 -04:00
Alexei Podtelezhnikov
8150ed0db2
[cff,psaux] Avoid memory zeroing (contd.).
...
* src/cff/cffload.c (cff_blend_doBlend, cff_blend_build_vector): Tweak
allocation macros.
* src/psaux/psarrst.c (cf2_arrstack_setNumElements): Ditto.
* src/psaux/psstack.c (cf2_stack_init): Ditto.
2021-05-05 23:30:46 -04:00
Ben Wagner
82fd32d674
* src/cid/cidload.c (cid_hex_to_binary): Improve return value.
...
Add argument to return the actual number of bytes that were decoded.
The actual number of bytes decoded can be quite variable depending
on the number of ignored 'whitespace' bytes or early termination
with `>`.
(cid_face_open): Updated to use this calculated value. This avoids
trusting `parser->binary_length` is always be correct and reading
uninitialized bits if fewer are actually decoded.
First reported as
https://crbug.com/1203240
2021-05-04 08:56:10 +02:00
Alexei Podtelezhnikov
66630d882c
[sfnt] Streamline POST format 2.0 handing.
...
To reduce memory allocations, we read an entire Pascal-string buffer
and convert it to a C-string buffer. We also reject tables with
Postscript glyph names exceeding 63 bytes.
* src/sfnt/ttpost.c (load_format20): Implement it.
(load_post_names): Check the minimal POST table size.
(load_format25, tt_face_free_ps_names): Updated accordingly.
2021-05-03 22:40:16 -04:00
Alexei Podtelezhnikov
ec95f9c921
[bdf,pcf] Avoid memory zeroing (contd.).
...
* src/bdf/bdflib.c (bdf_create_property, _bdf_add_comment,
_bdf_add_property, bdf_load_font): Tweak allocation macros.
* src/pcf/pcfread.c (pcf_get_properties, pcf_get_metrics): Ditto.
2021-05-02 18:30:22 -04:00
Alexei Podtelezhnikov
d911cb5392
* src/cid/cidload.c (cid_read_subrs): Tweak allocaton macro.
2021-05-01 23:49:11 -04:00
Alexei Podtelezhnikov
dc42f826af
[sfnt] Avoid some memory zeroing.
...
* src/sfnt/sfobjs.c (sfnt_open_font, sfnt_init_face,
tt_name_ascii_from_{utf16,other}): Tweak allocaton macros.
* src/sfnt/ttload.c (tt_face_load_name): Ditto.
2021-05-01 12:46:44 -04:00
Alexei Podtelezhnikov
b8968d666e
* src/sfnt/ttpost.c (load_format_{20,25}): Tweak allocaton macros.
2021-05-01 12:24:44 -04:00
Alexei Podtelezhnikov
2583b6085e
* src/sfnt/pngshim.c (Load_SBit_Png): Tweak allocaton macro.
2021-05-01 09:22:26 -04:00
Alexei Podtelezhnikov
56ae943050
[truetype] Avoid some memory zeroing.
...
* src/truetype/ttinterp.c (Init_Context): Tweak allocation macro.
* src/truetype/ttpload.c (tt_face_load_cvt): Ditto.
2021-05-01 09:14:04 -04:00
Alexei Podtelezhnikov
c177cc354d
[woff2] Avoid some memory zeroing.
...
* src/sfnt/sfwoff2.c (store_loca, woff2_open_font): Tweak macros.
2021-05-01 09:09:52 -04:00
Alexei Podtelezhnikov
4e1c6a12e5
* src/gzip/ftgzip.c (ft_gzip_alloc): Zero out memory again.
2021-04-30 09:35:21 -04:00
Alexei Podtelezhnikov
f631542dae
[lzw] Preserve decompression stack when relocating to heap.
...
* src/lzw/ftzopen.c (ft_lzwstate_stack_grow): Copy stack when
relocating to heap.
2021-04-27 11:39:58 -04:00
Alexei Podtelezhnikov
c213c8a9bb
* src/cid/cidgload.c (cid_load_glyph): Restore the glyph_length check.
2021-04-27 08:54:19 -04:00
Werner Lemberg
2ec6feaf39
* src/psmodule.c (ps_unicodes_init): Ignore empty glyph names.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=33637
2021-04-27 13:28:35 +02:00
Alexei Podtelezhnikov
caff87b1f9
* src/sfnt/sfobjs.c (sfnt_init_face): Revert macro change.
2021-04-26 22:45:40 -04:00
Alexei Podtelezhnikov
8750e843df
[cff] Avoid some memory zeroing.
...
* src/cff/cffparse.c (cff_parser_init): Tweak memory macro.
* src/cff/cffload.c (cff_index_load_offsets, cff_index_get_pointers,
cff_charset_load, cff_vstore_load): Ditto.
2021-04-26 17:21:51 -04:00
Alexei Podtelezhnikov
618d0834c7
[pfr] Avoid some memory zeroing.
...
* src/pfr/pfrobjs.c (pfr_face_init) : Tweak memory macro.
* src/pfr/pfrload.c (pfr_extra_item_load_stem_snaps,
pfr_phy_font_load): Ditto.
2021-04-26 17:14:28 -04:00
Alexei Podtelezhnikov
b0a281974d
* src/winfonts/winfnt.c (FNT_Face_Init): Tweak memory macro.
2021-04-26 17:10:28 -04:00
Alexei Podtelezhnikov
deee5b7017
[psaux,psnames] Avoid some memory zeroing.
...
* src/psaux/psstack.c (cf2_stack_init): Tweak memory macro.
* src/psnames/psmodule.c (ps_unicodes_init): Ditto.
2021-04-26 17:07:44 -04:00
Alexei Podtelezhnikov
270ff52f62
[base] Avoid some memory zeroing.
...
* src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Use FT_QNEW_ARRAY.
* src/base/ftsnames.c (FT_Get_Sfnt_{Name,LangTag}): Ditto.
2021-04-25 23:40:59 -04:00
Alexei Podtelezhnikov
c2d283143a
[bdf,pcf] Avoid some memory zeroing.
...
* src/pcf/pcfread.c (pcf_read_TOC, pcf_get_properties, pcf_load_font):
Tweak memory macros.
* src/bdf/bdfdrivr.c (BDF_Face_Init): Ditto.
* src/bdf/bdflib.c (_bdf_readstreami, bdf_create_property,
_bdf_parse_glyphs, _bdf_parse_start): Ditto.
(_bdf_add_property): Do not handle zero size.
2021-04-25 23:33:15 -04:00
Issam E. Maghni
f998eaf972
* builds/meson/process_ftoption_h.py: Add LF at EOF.
...
This fixes
.../ftoption.h:1030:10: error:
no newline at end of file [-Werror,-Wnewline-eof]
for the generated `ftoption.h` file.
2021-04-25 20:30:43 +02:00
Alexei Podtelezhnikov
c78f78fab4
* src/cff/cffload.c (cff_index_get_pointers): s/FT_QALLOC/FT_ALLOC/.
2021-04-24 22:38:48 -04:00
Alexei Podtelezhnikov
0bd5d95d66
* src/base/ftobjs.c (Mac_Read_POST_Resource): s/FT_ALLOC/FT_QALLOC/.
...
* builds/mac/ftmac.c (FT_New_Face_From_SFNT, read_lwfn): Ditto.
2021-04-23 22:04:05 -04:00
Alexei Podtelezhnikov
e6e5b67db3
* src/sdf/ftsdf.c (sdf_{edge,contour,shape}_new): Use FT_QALLOC.
2021-04-23 21:33:03 -04:00
Alexei Podtelezhnikov
6ada59ab7c
[sfnt] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
...
* src/sfnt/sfdriver.c (get_win_string, get_apple_string,
sfnt_get_var_ps_name): Do not zero out the buffer.
* src/sfnt/sfobjs.c (sfnt_init_face): Ditto.
* src/sfnt/sfwoff.c (woff_open_font): Ditto.
* src/sfnt/sfwoff2.c (woff2_open_font): Ditto.
2021-04-23 19:22:51 -04:00
Alexei Podtelezhnikov
ec9e5114b1
[cff,type1,type42] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
...
* src/cff/cffload.c (cff_index_get_pointers, cff_index_get_name):
Do not zero out the buffer.
* src/cff/cffdrivr.c (cff_ps_get_font_info): Ditto.
* src/type1/t1load.c (parse_subrs, parse_charstrings,
parse_blend_axis_types): Ditto.
* src/type1/t1parse.c (T1_New_Parser, T1_Get_Private_Dict): Ditto.
* src/type42/t42parse.c (t42_parser_init): Ditto.
2021-04-23 14:03:03 -04:00
Alexei Podtelezhnikov
baa0f71ddf
[cid] s/FT_ALLOC/FT_QALLOC/ and clean up.
...
* src/cid/cidgload.c (cid_load_glyph): Do not zero out the buffer.
* src/cid/cidload.c (cid_face_open, cid_read_subrs): Ditto.
2021-04-23 13:48:34 -04:00
Alexei Podtelezhnikov
b3438ccb31
[pfr] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
...
* src/pfr/pfrload.c (pfr_extra_item_load_font_id, pfr_aux_name_load):
Do not zero out the buffer.
2021-04-23 08:35:02 -04:00
Alexei Podtelezhnikov
1e525c62ae
[bzip2,gzip] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
...
* src/bzip2/ftbzip2.c (ft_bzip2_alloc): Do not zero out the buffer.
* src/gzip/ftgzip.c (ft_gzip_alloc, FT_Stream_OpenGzip): Ditto.
2021-04-23 08:24:22 -04:00
Alexei Podtelezhnikov
a0fb6dbcd9
[pcf,bdf,winfonts] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
...
* src/pcf/pcfread.c (pcf_interpret_style): Do not zero out the buffer.
* src/bdf/bdfdrivr.c (bdf_interpret_style): Ditto.
* src/winfonts/winfnt.c (FNT_Face_Init, FNT_Load_Glyph): Ditto.
2021-04-23 00:05:18 -04:00
Alexei Podtelezhnikov
23f85c8a98
[cache] Optimize SBit copying.
...
* src/cache/ftcsbits.c (ftc_snode_load): Do not initialize the buffer.
(ftc_sbit_copy_bitmap): Accept zero size, s/FT_ALLOC/FT_QALLOC/.
2021-04-22 23:34:08 -04:00
Alexei Podtelezhnikov
93715ab2c4
[gxvalid,otvalid] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
...
* src/gxvalid/gxvmod.c (gxv_load_table): Do not zero out the buffer.
* src/otvalid/otvmod.c (otv_load_table): Ditto.
2021-04-22 23:07:01 -04:00
Alexei Podtelezhnikov
90b97a833d
[psaux] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
...
* src/psaux/psobjs.c (ps_table_done, ps_parser_load_field): Do not
zero out the buffer.
2021-04-22 23:00:40 -04:00
Alexei Podtelezhnikov
44b1ebe514
[base] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
...
* src/base/ftobjs.c (open_face_PS_from_sfnt_stream,
Mac_Read_sfnt_Resource): Do not zero out the buffer.
* src/base/ftmac.c (FT_New_Face_From_SFNT, read_lwfn): Ditto.
* src/base/ftrfork.c (raccess_make_file_name,
raccess_guess_darwin_hfsplus, raccess_guess_darwin_newvfs): Ditto.
2021-04-22 22:34:05 -04:00
Alexei Podtelezhnikov
8a459e5172
[cache] Restore SBit copying for unowned (BDF) bitmaps.
...
* src/cache/ftcsbits.c (ftc_sbit_copy_bitmap): Restore.
(ftc_snode_load): Check ownership and copy unowned bitmaps.
2021-04-20 22:53:13 -04:00
Alexei Podtelezhnikov
361465dec9
Bitmap tracing.
2021-04-20 22:31:28 -04:00
Dominik Röttsches
e662a9500f
[sfnt] Return in 'COLR' v1 when layer pointer outside table
...
* src/sfnt/ttcolr.c (tt_face_get_paint_layers): Add missing return
when paint pointer outside table.
(read_paint): Add missing return when paint pointer outside table.
2021-04-19 12:49:16 +03:00
Alexei Podtelezhnikov
7c685cb3f6
[cache] Switch to lazy SBit setting.
...
* src/cache/ftcsbits.c (ftc_sbit_copy_bitmap): Removed.
(ftc_snode_load): Take the bitmap ownership instead of copying.
2021-04-18 22:31:13 -04:00
Alexei Podtelezhnikov
02dec61731
Typo.
2021-04-18 10:24:31 -04:00
Daniel Welty
2e68785e08
* src/cache/ftcsbits.c (ftc_snode_load): Properly handle short pitch.
2021-04-17 09:00:40 -04:00
Werner Lemberg
6f6ad87638
* builds/unix/freetype2.m4: Fix help string formatting.
...
The indented `dnl` macros inserted unwanted horizontal space.
Problem reported by Ozkan Sezer <sezeroz@gmail.com>.
2021-04-16 20:50:27 +02:00
Dominik Röttsches
7f8a1edd3a
[sfnt] Safeguard 'COLR' v1 layer extraction
...
* src/sfnt/ttcolr.c (tt_face_get_paint_layers): Do not output
layer pointer to iterator if it is outside the 'COLR' table.
(read_paint): Do not attempt to read layers that are outside the
table.
2021-04-16 12:41:58 +03:00
Alexei Podtelezhnikov
b9b74f9f78
A few words on prerequisites.
2021-04-10 23:32:20 -04:00
Ben Wagner
f9350be1e4
[base] Complete ft_glyphslot_clear
.
...
* src/base/ftobjs.c (ft_glyphslot_clear): This function is intended
to reset all the values of a glyph slot. However, it was not
resetting the values of the advances and `glyph_index`. Reset the
advances and `glyph_index` to zero.
2021-04-02 11:09:01 +02:00
Ben Wagner
52f2a008f1
Update TT_New_Context documentation
...
In commit 531d463aed
[truetype] Allocate TT_ExecContext in TT_Size instead of TT_Driver.
the `TT_ExecContext` was moved from being on the driver to being on the size
to make it easier to use FreeType in a multi-threaded environment. However,
the documentation for `TT_New_Context` was not updated and still reflects
the old behavior and parameter list.
This change updates `TT_New_Context` documentation to reflect the current
parameters and usage.
2021-04-02 11:01:12 +02:00