[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [ft-devel] error enums that I _cannot_ add
From: |
Hin-Tak Leung |
Subject: |
Re: [ft-devel] error enums that I _cannot_ add |
Date: |
Thu, 21 Jul 2016 13:43:50 +0000 (UTC) |
Argh, my question was meant to be "can you give me some hints how to add those"
:-).
I added the 64k limit myself - that was b52/b53 - line 3715 and 4010, after the
"case 0x2D" lines:
(
http://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree/src/truetype/ttinterp.c
)
insert something like
if ( (def->end - def->start) > 65535 )
warning();
BTW, I think line 4010 is missing a "def->end = exc->IP;" line. "def->end" is
not used except for bound checking,
(though precisely because it is used for that, I did put it in my diagnostic
patch set)
so it is probably not important, but you might still want to add that line, to
match how it looks around line 3715.
It annoys me slightly that I cannot put the "end without if" check in easily -
I have a test file for it, actually.
But I understand there is no reason for Freetype to even notice such a thing -
an "end without if" is just a no-op, and does not see to get special attention.
I'll figure out something, one day.
Hin-Tak
--------------------------------------------
On Thu, 21/7/16, Werner LEMBERG <address@hidden> wrote:
> I
don't think Freetype checks and cares about 'EIF
found without IF'
> (no reason to,
unlike the opposite, an IP or ELSE that goes on and
> on)?
Correct.
>
likewise 'ELSE found without EIF' - an ELSE that
goes on and goes,
> is already captured,
but Freetype does not check an 'ELSE found
> without IF' - i.e. an ELSE without
something leading up to it?
Correct.
> Or
the 64k limit for individual FDEF/IDEF? Freetype seems to
allow
> large ones without
complaints?
Correct.
It
should be fairly easy to add some code that catches those
issues.
I don't think, however, that
this needs to be added without
FT_DIAGNOSTICS.
Werner
- Re: [ft-devel] error enums that I _cannot_ add,
Hin-Tak Leung <=