diff options
author | marcus <marcus@FreeBSD.org> | 2006-08-23 04:11:44 +0000 |
---|---|---|
committer | marcus <marcus@FreeBSD.org> | 2006-08-23 04:11:44 +0000 |
commit | 5077fe7b49dbd83dd158641542a81c8ec2d2f495 (patch) | |
tree | a08b774ac9485ab00c4b0e9947a94509f6e5de09 /print | |
parent | 37a2e0bc27a071dbc6d514e08cf07a6e81352cf9 (diff) | |
download | FreeBSD-ports-5077fe7b49dbd83dd158641542a81c8ec2d2f495.zip FreeBSD-ports-5077fe7b49dbd83dd158641542a81c8ec2d2f495.tar.gz |
Fix another 2.1.x mismerge that caused a crash parsing certain pcf fonts.
Reported by: mezz
Diffstat (limited to 'print')
-rw-r--r-- | print/freetype2/Makefile | 2 | ||||
-rw-r--r-- | print/freetype2/files/patch-src_pcf_pcfread.c | 33 |
2 files changed, 23 insertions, 12 deletions
diff --git a/print/freetype2/Makefile b/print/freetype2/Makefile index 47c5237..9440aead 100644 --- a/print/freetype2/Makefile +++ b/print/freetype2/Makefile @@ -7,7 +7,7 @@ PORTNAME= freetype2 PORTVERSION= 2.1.10 -PORTREVISION= 4 +PORTREVISION= 5 CATEGORIES= print MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:S,%SUBDIR%,freetype,} \ http://sunsite.cnlab-switch.ch/ftp/mirror/freetype/%SUBDIR%/ \ diff --git a/print/freetype2/files/patch-src_pcf_pcfread.c b/print/freetype2/files/patch-src_pcf_pcfread.c index 227f5e1..a5b3f45 100644 --- a/print/freetype2/files/patch-src_pcf_pcfread.c +++ b/print/freetype2/files/patch-src_pcf_pcfread.c @@ -1,5 +1,5 @@ ---- src/pcf/pcfread.c.orig Sun May 1 15:38:55 2005 -+++ src/pcf/pcfread.c Tue Aug 22 21:43:41 2006 +--- src/pcf/pcfread.c.orig Sun May 1 11:38:55 2005 ++++ src/pcf/pcfread.c Wed Aug 23 00:07:33 2006 @@ -102,7 +102,8 @@ THE SOFTWARE. return PCF_Err_Cannot_Open_Resource; @@ -345,7 +345,15 @@ return error; } -@@ -598,14 +689,16 @@ THE SOFTWARE. +@@ -571,7 +662,6 @@ THE SOFTWARE. + FT_Long bitmapSizes[GLYPHPADOPTIONS]; + FT_ULong format, size; + int nbitmaps, i, sizebitmaps = 0; +- char* bitmaps; + + + error = pcf_seek_to_table_type( stream, +@@ -598,14 +688,16 @@ THE SOFTWARE. if ( !PCF_FORMAT_MATCH( format, PCF_DEFAULT_FORMAT ) ) return PCF_Err_Invalid_File_Format; @@ -364,7 +372,7 @@ for ( i = 0; i < nbitmaps; i++ ) { if ( PCF_BYTE_ORDER( format ) == MSBFirst ) -@@ -613,7 +706,7 @@ THE SOFTWARE. +@@ -613,7 +705,7 @@ THE SOFTWARE. else (void)FT_READ_LONG_LE( offsets[i] ); @@ -373,7 +381,7 @@ i, offsets[i], offsets[i] )); } if ( error ) -@@ -641,13 +734,20 @@ THE SOFTWARE. +@@ -641,16 +733,22 @@ THE SOFTWARE. FT_UNUSED( sizebitmaps ); /* only used for debugging */ for ( i = 0; i < nbitmaps; i++ ) @@ -397,8 +405,11 @@ - Bail: FT_FREE ( offsets ); - FT_FREE ( bitmaps ); -@@ -736,7 +836,7 @@ THE SOFTWARE. +- FT_FREE ( bitmaps ); + return error; + } + +@@ -736,7 +834,7 @@ THE SOFTWARE. tmpEncoding[j].glyph = (FT_Short)encodingOffset; @@ -407,7 +418,7 @@ tmpEncoding[j].enc, tmpEncoding[j].enc, tmpEncoding[j].glyph )); -@@ -830,7 +930,8 @@ THE SOFTWARE. +@@ -830,7 +928,8 @@ THE SOFTWARE. if ( error ) goto Bail; @@ -417,7 +428,7 @@ if ( !PCF_FORMAT_MATCH( format, PCF_DEFAULT_FORMAT ) && !PCF_FORMAT_MATCH( format, PCF_ACCEL_W_INKBOUNDS ) ) -@@ -878,7 +979,6 @@ THE SOFTWARE. +@@ -878,7 +977,6 @@ THE SOFTWARE. accel->ink_minbounds = accel->minbounds; /* I'm not sure about this */ accel->ink_maxbounds = accel->maxbounds; } @@ -425,7 +436,7 @@ Bail: return error; -@@ -1084,11 +1184,12 @@ THE SOFTWARE. +@@ -1084,11 +1182,12 @@ THE SOFTWARE. else root->family_name = NULL; @@ -441,7 +452,7 @@ */ root->num_glyphs = face->nmetrics + 1; -@@ -1170,7 +1271,7 @@ THE SOFTWARE. +@@ -1170,7 +1269,7 @@ THE SOFTWARE. Exit: if ( error ) { |