From d61b042568d395ef7d55d0475db9203ae0f6b3cf Mon Sep 17 00:00:00 2001 From: Werner Lemberg Date: Sat, 8 Oct 2016 19:20:33 +0200 Subject: [PATCH] [cid] Fix parsing of subr offsets. Bug introduced 2016-05-16. * src/cid/cidparse.c (cid_parser_new): Fix off-by-one error. --- ChangeLog | 8 ++++++++ docs/CHANGES | 3 +++ src/cid/cidparse.c | 4 ++-- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 70ffa9412..be8535538 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2016-10-08 Werner Lemberg + + [cid] Fix parsing of subr offsets. + + Bug introduced 2016-05-16. + + * src/cid/cidparse.c (cid_parser_new): Fix off-by-one error. + 2016-10-01 Werner Lemberg [sfnt] Disable bitmap strikes if we don't have a bitmap data table. diff --git a/docs/CHANGES b/docs/CHANGES index c7c2cd44a..f0eddc53b 100644 --- a/docs/CHANGES +++ b/docs/CHANGES @@ -6,6 +6,9 @@ CHANGES BETWEEN 2.7 and 2.7.1 II. IMPORTANT BUG FIXES + - Handling of raw CID fonts was partially broken (bug introduced + in 2.6.4). + III. MISCELLANEOUS diff --git a/src/cid/cidparse.c b/src/cid/cidparse.c index 8dce7f937..1b27b2e95 100644 --- a/src/cid/cidparse.c +++ b/src/cid/cidparse.c @@ -138,13 +138,13 @@ ft_strncmp( (char*)p, STARTDATA, STARTDATA_LEN ) == 0 ) { /* save offset of binary data after `StartData' */ - offset += (FT_ULong)( p - buffer ) + STARTDATA_LEN; + offset += (FT_ULong)( p - buffer ) + STARTDATA_LEN + 1; goto Found; } else if ( p[1] == 's' && ft_strncmp( (char*)p, SFNTS, SFNTS_LEN ) == 0 ) { - offset += (FT_ULong)( p - buffer ) + SFNTS_LEN; + offset += (FT_ULong)( p - buffer ) + SFNTS_LEN + 1; goto Found; } }