freebsd-ports/print/libotf/files/patch-src_otfopen.c
Sylvio Cesar Teixeira a5dba8e75c - Update print/libotf to 0.9.12.
- Fixed otfdump crashes with some fonts, patches from Kenichi Handa <handa@m17n.org>.

PR:		ports/154675
Submitted by:	Nikola Lecic <nikola.lecic@anthesphoria.net> (maintainer)
2011-02-11 12:21:08 +00:00

45 lines
1.7 KiB
C

--- src/otfopen.c 22 Sep 2010 03:46:17 -0000 1.62
+++ src/otfopen.c 11 Feb 2011 02:55:05 -0000 1.63
@@ -2336,8 +2336,9 @@
}
for (i = 0; i < array->Count; i++)
for (j = 0; j < ClassCount; j++)
- if (read_anchor (otf, stream, offset + array->offset,
- &array->AnchorRecord[i].Anchor[j]) < 0)
+ if (array->AnchorRecord[i].Anchor[j].offset > 0
+ && read_anchor (otf, stream, offset + array->offset,
+ &array->AnchorRecord[i].Anchor[j]) < 0)
return -1;
RESTORE_STREAM (stream, state);
return 0;
@@ -2437,7 +2438,7 @@
unsigned ClassCount, OTF_LigatureAttach *attach)
{
char *errfmt = "LigatureAttach%s";
- int errret = 1;
+ int errret = -1;
int i, j;
SEEK_STREAM (stream, offset + attach->offset);
@@ -2483,8 +2484,10 @@
for (i = 0; i < array->LigatureCount; i++)
READ_OFFSET (stream, array->LigatureAttach[i].offset);
for (i = 0; i < array->LigatureCount; i++)
- read_ligature_attach (otf, stream, offset + array->offset,
- class_count, array->LigatureAttach + i);
+ if (array->LigatureAttach[i].offset > 0
+ && read_ligature_attach (otf, stream, offset + array->offset,
+ class_count, array->LigatureAttach + i) < 0)
+ return -1;
RESTORE_STREAM (stream, state);
return 0;
}
@@ -2625,7 +2628,7 @@
read_coverage (otf, stream, offset, &subtable->Coverage);
read_coverage (otf, stream, offset,
&subtable->u.mark_mark1.Mark2Coverage);
- READ_UINT16 (stream, subtable->u.mark_base1.ClassCount);
+ READ_UINT16 (stream, subtable->u.mark_mark1.ClassCount);
read_mark_array (otf, stream, offset,
&subtable->u.mark_mark1.Mark1Array);
read_anchor_array (otf, stream, offset,