[type1] Another fix for 2012-09-17 commit.

* src/type1/t1parse.c (T1_Get_Private_Dict) <found>: Correctly set
`limit' value.
This commit is contained in:
Johnson Y. Yan 2012-12-09 00:07:51 +01:00 committed by Werner Lemberg
parent f5e2e39828
commit 06d6916c96
2 changed files with 14 additions and 6 deletions

View File

@ -1,3 +1,10 @@
2012-12-09 Johnson Y. Yan <yinsen_yan@foxitsoftware.com>
[type1] Another fix for 2012-09-17 commit.
* src/type1/t1parse.c (T1_Get_Private_Dict) <found>: Correctly set
`limit' value.
2012-12-06 Alexei Podtelezhnikov <apodtele@gmail.com>
[truetype] Tweak the previous commit.

View File

@ -342,7 +342,7 @@
{
c = cur[0];
if ( c == 'e' && cur + 9 < limit ) /* 9 = 5 letters for `eexec' + */
/* newline + 4 chars */
/* whitespace + 4 chars */
{
if ( cur[1] == 'e' &&
cur[2] == 'x' &&
@ -364,7 +364,7 @@
/* or string (as e.g. in u003043t.gsf from ghostscript) */
parser->root.cursor = parser->base_dict;
/* set limit to `eexec' + newline + 4 characters */
/* set limit to `eexec' + whitespace + 4 characters */
parser->root.limit = cur + 10;
cur = parser->root.cursor;
@ -397,7 +397,8 @@
parser->root.limit = parser->base_dict + parser->base_len;
T1_Skip_PS_Token( parser );
cur = parser->root.cursor;
cur = parser->root.cursor;
limit = parser->root.limit;
/* according to the Type1 spec, the first cipher byte must not be */
/* an ASCII whitespace character code (blank, tab, carriage return */
@ -438,9 +439,9 @@
/* now determine whether the private dictionary is encoded in binary */
/* or hexadecimal ASCII format -- decode it accordingly */
/* we need to access the next 4 bytes (after the final \r following */
/* the `eexec' keyword); if they all are hexadecimal digits, then */
/* we have a case of ASCII storage */
/* we need to access the next 4 bytes (after the final whitespace */
/* following the `eexec' keyword); if they all are hexadecimal */
/* digits, then we have a case of ASCII storage */
if ( cur + 3 < limit &&
ft_isxdigit( cur[0] ) && ft_isxdigit( cur[1] ) &&