From b2ea64bcc6c385a8e8318f9c759450a07df58b6d Mon Sep 17 00:00:00 2001 From: suzuki toshiya Date: Fri, 2 Jul 2010 18:16:02 +0900 Subject: [PATCH] Additional fix for Savannah bug #30306. * src/base/ftobjs.c (Mac_Read_POST_Resource): If the type of the POST fragment is 0, the segment is completely ignored. The declared length of the segment is not cared at all. According to Adobe Technical Note 5040, type 0 segment is comment only and should not be loaded for the interpreter. Reported by Robert Swiecki. --- ChangeLog | 11 +++++++++++ src/base/ftobjs.c | 3 +++ 2 files changed, 14 insertions(+) diff --git a/ChangeLog b/ChangeLog index 4073342f7..a046796df 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2010-07-02 suzuki toshiya + + Additional fix for Savannah bug #30306. + + * src/base/ftobjs.c (Mac_Read_POST_Resource): If the type + of the POST fragment is 0, the segment is completely ignored. + The declared length of the segment is not cared at all. + According to Adobe Technical Note 5040, type 0 segment is + comment only and should not be loaded for the interpreter. + Reported by Robert Swiecki. + 2010-07-01 Werner Lemberg [truetype] Protect against code range underflow. diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c index 7c2662f6e..11efc75f7 100644 --- a/src/base/ftobjs.c +++ b/src/base/ftobjs.c @@ -1550,6 +1550,9 @@ FT_TRACE3(( "POST fragment[%d]: offsets=0x%08x, rlen=0x%08x, flags=0x%04x\n", i, offsets[i], rlen, flags )); + if ( ( flags >> 8 ) == 0 ) /* Comment, should not be loaded */ + continue; + /* the flags are part of the resource, so rlen >= 2. */ /* but some fonts declare rlen = 0 for empty fragment */ if ( rlen > 2 )