Armin Hasitzka
35efb103fe
[errors] Introduce a macro to control `FT_Error_String'.
...
* devel/ftoption.h (FT_CONFIG_OPTION_ERROR_STRINGS),
include/freetype/config/ftoption.h (FT_CONFIG_OPTION_ERROR_STRINGS):
New macro.
2018-08-30 14:30:46 +02:00
Armin Hasitzka
d20dc3928b
[errors] Introduce `FT_Error_String'.
...
* include/freetype/fterrors.h (FT_Error_String),
src/base/fterrors.c (FT_Error_String): Implement `FT_Error_String'.
* src/base/ftbase.c, src/base/Jamfile (_source),
src/base/rules.mk (BASE_SRC): Add `fterrors.c' to the build logic.
* src/base/ftdebug.c (FT_Throw): Use `FT_Error_String'.
2018-08-30 14:09:04 +02:00
Werner Lemberg
c0ccf75012
[autofit] Trace before' and
after' edges of strong points.
...
* src/autofit/afhints.h (AF_PointRec) [FT_DEBUG_AUTOFIT]: New arrays
`before' and `after'.
* src/autofit/afhints.c (af_get_strong_edge_index): New auxiliary
function.
(af_glyph_hints_dump_points): Trace `before' and `after' edges.
(af_glyph_hints_align_strong_points) [FT_DEBUG_AUTOFIT]: Set
`before' and `after' information.
2018-08-30 09:56:09 +02:00
Werner Lemberg
21c2b3905c
Minor.
2018-08-30 09:52:08 +02:00
Alexei Podtelezhnikov
5d93a3fc8d
[base] Overflow-resistant bitmap presetting.
...
* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Implement it.
2018-08-30 01:12:22 -04:00
Werner Lemberg
19be8620ec
Doc fix.
2018-08-29 18:15:03 +02:00
Armin Hasitzka
934a6159ba
Fix numeric overflows.
...
* src/pshint/pshalgo.c (psh_hint_align, psh_hint_align_light,
psh_hint_table_find_strong_points): Fix numeric overflows.
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10083
2018-08-29 15:28:21 +02:00
Werner Lemberg
14dff08f37
ftoption.h: s/precendence/precedence/ in documentation ( #54586 ).
2018-08-29 06:56:21 +02:00
Werner Lemberg
3915a18b8c
[cff] Fix handling of `roll' op in old engine.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10080
* src/psaux/cffdecode.c (cff_decoder_parse_charstrings) <cff_op_roll>
[CFF_CONFIG_OPTION_OLD_ENGINE]: Use modulo for loop count, as
documented in the specification.
2018-08-29 06:53:54 +02:00
Werner Lemberg
2c8e6279a7
Minor doc fix.
2018-08-28 08:02:13 +02:00
Werner Lemberg
ae3afbc471
* src/truetype/ttobjs.c (tt_size_read_bytecode): Trace CVT values.
2018-08-26 15:40:16 +02:00
Werner Lemberg
2095772144
ChangeLog*: s/\t/ /.
2018-08-26 15:15:56 +02:00
Nikhil Ramakrishnan
f87b711746
* configure: Copy assets required by docwriter.
...
Copy directory `docs/reference/markdown' when FreeType is compiled in a
different directory.
Fixes `make refdoc' if builddir != srcdir.
Reported as
http://lists.nongnu.org/archive/html/freetype-devel/2018-08/msg00083.html
2018-08-26 17:46:25 +05:30
Werner Lemberg
13034e54aa
* src/pshint/pshalgo.c (psh_hint_overlap): Fix numeric overflow.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10057
2018-08-26 12:22:51 +02:00
Werner Lemberg
4738dcc4df
Minor tracing adjustments.
...
* src/base/ftstream.c (FT_Stream_EnterFrame, FT_Stream_ExitFrame):
Trace.
* src/truetype/ttgload.c (TT_Access_Glyph_Frame): Remove tracing.
2018-08-26 12:03:33 +02:00
Werner Lemberg
6e339b8d8e
[truetype] Avoid nested frames.
...
Triggered by
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10054
* src/truetype/ttgload.c (load_truetype_glyph): Don't use variable
`opened_frame' to trace whether a frame must be closed at the end of
function: This fails because `TT_Vary_Apply_Glyph_Deltas' (which
gets called for space glyphs) uses a frame by itself. Instead,
close the frame after loading the header, then use another frame for
the remaining part of the glyph later on.
Also avoid calling `tt_get_metrics' twice under some circumstances.
2018-08-26 12:01:14 +02:00
Werner Lemberg
b287c80b6a
Various minor clean-ups.
...
* src/base/ftapi.c: Remove. Unused.
* src/base/Jamfile (_sources): Updated.
* src/base/ftstream.c (FT_Stream_ReleaseFrame): Remove redundant
code.
2018-08-26 06:39:43 +02:00
Werner Lemberg
c98aa9b78a
Add missing ChangeLog entry for the last four commits.
2018-08-25 17:02:20 +02:00
Nikhil Ramakrishnan
c962db28ea
* builds/*/*: Prepare build system for docwriter.
...
Add checks, rules and variables to the build system for docwriter.
* Running `make' will warn if Python/PIP/docwriter are not available.
* Running `make refdoc' will generate static documentation site on the
current Python environment.
* Running `make refdoc-venv' will generate static documentation site
using a virtual environment, using the pip package `virtualenv'.
2018-08-25 16:18:26 +05:30
Nikhil Ramakrishnan
195728d5ba
* src/tools/docmaker: Remove `docmaker'.
...
`Docmaker' has now upgraded to `docwriter', a pip package available at
https://pypi.org/project/docwriter/
2018-08-25 16:18:21 +05:30
Nikhil Ramakrishnan
53c69ce04f
* docs/reference: Add resources for `docwriter'.
...
Add the required resources (images, JS, CSS) for `docwriter'.
* docs/reference/.gitignore: Update to ignore `site' folder and other
files generated by docwriter.
* docs/reference/README: Add docwriter usage information and
troubleshooting tips.
* docs/reference/markdown: New directory to hold generated markdown
files and other resources.
2018-08-25 16:17:52 +05:30
Nikhil Ramakrishnan
ae5d1a4cec
* include/*.*: Convert comments to markdown.
...
This commit was created by applying scripts `markify.py' and
`markdown-format.bash' to all C header files, followed by minor
clean-up.
No change in functionality, of course.
Scripts used:
https://github.com/nikramakrishnan/freetype-docs.git : Commit dfce31e.
http://lists.nongnu.org/archive/html/freetype-devel/2018-08/msg00013.html :
With patches applied.
2018-08-25 16:16:56 +05:30
Werner Lemberg
77f0814a31
Add macros for handling over-/underflowing `FT_Int64' values.
...
* include/freetype/internal/ftcalc.h (ADD_INT64, SUB_INT64,
MUL_INT64, DIV_INT64) [FT_LONG64]: New macros.
* src/base/ftcalc.c (ft_corner_orientation) [FT_LONG64]: Use
`SUB_INT64' and `MUL_INT64'.
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10028
2018-08-23 17:53:54 +02:00
Werner Lemberg
c90cc6443b
ftbitmap.h: Improve documentation.
2018-08-23 13:13:20 +02:00
Werner Lemberg
45524679c6
[truetype] Improve legibility of `glyf' parsing.
...
* src/truetype/ttgload.c (ON_CURVE_POINT, X_SHORT_VECTOR,
Y_SHORT_VECTOR, REPEAT_FLAG, X_POSITIVE, SAME_X, Y_POSITIVE, SAME_Y,
OVERLAP_SIMPLE): New macros.
(TT_Load_Simple_Glyph): Use new macros to make code more readable.
Remove useless adjustment of `outline->tags' elements.
2018-08-22 10:31:05 +02:00
Werner Lemberg
a3e842f9c6
Minor formatting and documentation fixes.
2018-08-22 10:30:08 +02:00
Werner Lemberg
0a33b44e6e
* src/sfnt/ttcpal.c (tt_face_load_cpal): Add missing safety check.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9981
2018-08-21 10:52:14 +02:00
Werner Lemberg
4873eb1d31
Update `CHANGES' file.
2018-08-19 07:27:21 +02:00
Werner Lemberg
4dc0d48f7b
[psaux] Avoid slow PS font parsing in case of error.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9955
* src/psaux/psobjs.c (ps_parser_to_bytes): Set `parser->cursor' even
in case of error to avoid potential re-scanning.
2018-08-18 14:39:20 +02:00
Werner Lemberg
2550fc75a5
[cff] Fix heap buffer overflow in old engine.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9967
* src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
<cff_op_blend> [CFF_CONFIG_OPTION_OLD_ENGINE]: `num_designs' must be
non-zero.
2018-08-18 13:38:48 +02:00
Young Xiao
c94162a220
* builds/mac/ftmac.c (parse_fond): Fix buffer overrun.
...
Reported as bug #54515 , duplicate of #43540 .
2018-08-16 08:25:47 -04:00
Werner Lemberg
33cd1eedcf
* builds/*/ftsystem.c (FT_COMPONENT): Updated also.
2018-08-16 05:55:18 +02:00
Alexei Podtelezhnikov
efa2a3babf
Revert BDF copyright years.
2018-08-15 23:49:07 -04:00
Alexei Podtelezhnikov
af9662e60b
Ouch. BDF copyright year.
2018-08-15 22:58:11 -04:00
Alexei Podtelezhnikov
923fcbcdd8
[bdf] Don't track duplicate encodings.
...
There is no harm except some umbiguity in broken fonts with duplicate
encodings.
* src/bdf/bdflib.c (_bdf_parse_glyphs): Remove duplicate tracking.
(_bdf_parse_t): Remove large `have' bitfield.
2018-08-15 22:50:06 -04:00
Werner Lemberg
a0dd16fb3d
Don't use `trace_' prefix for FT_COMPONENT arguments.
...
* include/freetype/internal/ftdebug.h (FT_TRACE_COMP,
FT_TRACE_COMP_): New auxiliary macros to add `trace_' prefix.
(FT_TRACE): Use `FT_TRACE_COMP'.
*/* (FT_COMPONENT): Updated.
2018-08-15 18:13:17 +02:00
Werner Lemberg
1d7b034cd8
Use formatting string in FT_TRACEX calls for non-simple arguments.
...
* src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
<cff_op_hstem, cff_op_hintmask, cff_op_hlineto, cff_op_vhcurveto>:
Do it.
* src/psaux/pshints.c (cf2_hintmap_build): Ditto.
* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdHSTEM,
cf2_cmdVSTEM, cf2_cmdHLINETO, cf2_cmdRRCURVETO, cf2_cmdCALLSUBR,
cf2_escHSTEM3, cf2_cmdHINTMASK, cf2_cmdHVCURVETO>: Ditto.
* src/truetype/ttinterp.c (TT_RunIns): Ditto.
2018-08-14 15:56:28 +02:00
Alexei Podtelezhnikov
e001a17d73
[bdf] Remove unused fields.
...
* src/bdf/bdf.h (bdf_font_t): Remove `nmod', `umod', and `modified',
which were set but never used.
* src/bdf/bdflib.c (_bdf_parse_{glyphs,properties}, bdf_load_font):
Updated accordingly.
2018-08-14 07:10:57 -04:00
Werner Lemberg
44db1addd8
[cff] Fix another segv in old engine.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9872
* src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
[CFF_CONFIG_OPTION_OLD_ENGINE]: Disallow invalid T1 opcodes in
dictionaries.
2018-08-14 10:01:00 +02:00
Werner Lemberg
1937b55734
[cff] Fix missing error handling.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9865
* src/psaux/cffparse.c (cff_parser_run)
[CFF_CONFIG_OPTION_OLD_ENGINE]: Don't ignore return value of
`parse_charstrings_old'.
2018-08-14 07:54:25 +02:00
Alexei Podtelezhnikov
ac2ea865f3
[bdf] Remove unused overflow storage.
...
* src/bdf/bdf.h (bdf_glyphlist_t): Remove this type.
(bdf_font_t): Remove `overflow' field.
* src/bdf/bdflib.c (bdf_free_font): Remove `overflow' freeing.
2018-08-13 21:33:24 -04:00
Werner Lemberg
757bdf1aef
[cff] Fix segv.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9864
* src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
<cff_op_random> [CFF_CONFIG_OPTION_OLD_ENGINE]: Use top dict's
`random' field directly if parsing dictionaries.
2018-08-14 02:02:26 +02:00
Alexei Podtelezhnikov
f5fe6e2f17
[bdf] Use unsigned types.
...
* src/bdf/bdf.h (bdf_glyph_t): Unsign `encoding'.
(bdf_font_t): Unsign `default_char'.
* src/bdf/bdfdrivr.h (BDF_encoding_el): Unsign `enc'.
* src/bdf/bdflib.c (_bdf_add_property, _bdf_parse_glyphs,
_bdf_parse_start): Updated accordingly.
* src/bdf/bdfdrivr.c (bdf_cmap_char_{index,next}): Ditto.
2018-08-13 09:01:53 -04:00
Werner Lemberg
50486df1e6
* src/type42/t42parse.c (t42_parse_sfnts): One more format check.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9832
2018-08-13 08:46:53 +02:00
Armin Hasitzka
37c7b81794
Remove deprecated constant in documentation.
...
* include/freetype/ftdriver.h: Suggest using `FT_HINTING_ADOBE' since
`FT_CFF_HINTING_ADOBE' is deprecated.
2018-08-12 01:42:00 +02:00
Werner Lemberg
5b904409fc
* src/base/ftcalc.c (FT_Matrix_Check): Fix integer overflow.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9811
2018-08-11 06:41:35 +02:00
Alexei Podtelezhnikov
88c0e12109
* src/sfnt/ttsbit.c (tt_sbit_decoder_load_compound): Follow specs.
2018-08-10 21:24:40 -04:00
Ben Wagner
96b5e50090
* src/sfnt/sfobjs.c (sfnt_done_face): Fix memory leak ( #54435 ).
2018-08-10 22:24:26 +02:00
Nikhil Ramakrishnan
1a21ca7b91
Minor formatting.
2018-08-10 19:32:31 +05:30
Werner Lemberg
1aa73fa83d
* src/base/ftobjs.c (FT_Render_Glyph_Internal): Improve tracing.
2018-08-10 05:41:32 +02:00