* src/base/ftobjs.c (Mac_Read_POST_Resource): Check the buffer size during gathering PFB fragments embedded in LaserWriter PS font for Macintosh. Reported by Robert Swiecki.
This commit is contained in:
parent
0ae6cf214f
commit
f29f741efb
@ -1,3 +1,11 @@
|
||||
2010-07-01 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
|
||||
|
||||
Additional fix for Savannah bug #30248 and #30249.
|
||||
|
||||
* src/base/ftobjs.c (Mac_Read_POST_Resource): Check the buffer
|
||||
size during gathering PFB fragments embedded in LaserWriter PS
|
||||
font for Macintosh. Reported by Robert Swiecki.
|
||||
|
||||
2010-06-30 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||||
|
||||
Minor optimizations by avoiding divisions.
|
||||
|
@ -1552,6 +1552,8 @@
|
||||
len += rlen;
|
||||
else
|
||||
{
|
||||
if ( pfb_lenpos + 3 > pfb_len + 2 )
|
||||
goto Exit2;
|
||||
pfb_data[pfb_lenpos ] = (FT_Byte)( len );
|
||||
pfb_data[pfb_lenpos + 1] = (FT_Byte)( len >> 8 );
|
||||
pfb_data[pfb_lenpos + 2] = (FT_Byte)( len >> 16 );
|
||||
@ -1560,6 +1562,8 @@
|
||||
if ( ( flags >> 8 ) == 5 ) /* End of font mark */
|
||||
break;
|
||||
|
||||
if ( pfb_pos + 6 > pfb_len + 2 )
|
||||
goto Exit2;
|
||||
pfb_data[pfb_pos++] = 0x80;
|
||||
|
||||
type = flags >> 8;
|
||||
@ -1579,9 +1583,13 @@
|
||||
pfb_pos += rlen;
|
||||
}
|
||||
|
||||
if ( pfb_pos + 2 > pfb_len + 2 )
|
||||
goto Exit2;
|
||||
pfb_data[pfb_pos++] = 0x80;
|
||||
pfb_data[pfb_pos++] = 3;
|
||||
|
||||
if ( pfb_lenpos + 3 > pfb_len + 2 )
|
||||
goto Exit2;
|
||||
pfb_data[pfb_lenpos ] = (FT_Byte)( len );
|
||||
pfb_data[pfb_lenpos + 1] = (FT_Byte)( len >> 8 );
|
||||
pfb_data[pfb_lenpos + 2] = (FT_Byte)( len >> 16 );
|
||||
|
Loading…
Reference in New Issue
Block a user