ref: 9a0332cd3fe0840cd96665863829980df7ca43a6
parent: 6c05475d501663b77d8e4ccc00e792322c082ad8
author: Werner Lemberg <[email protected]>
date: Tue Jun 5 01:50:01 EDT 2007
* src/pfr/pfrgload.c (pfr_glyph_curve_to, pfr_glyph_line_to): Convert assertion into normal FreeType error.
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,8 +4,8 @@
(pfr_glyph_load_simple): Convert assertion into normal FreeType
error.
Check `idx'.
- (pfr_glyph_load_compound): Convert assertion into normal FreeType
- error.
+ (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
+ Convert assertion into normal FreeType error.
* src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
--- a/src/pfr/pfrgload.c
+++ b/src/pfr/pfrgload.c
@@ -133,7 +133,12 @@
/* check that we have begun a new path */
- FT_ASSERT( glyph->path_begun != 0 );
+ if ( !glyph->path_begun )
+ {
+ error = PFR_Err_Invalid_Table;
+ FT_ERROR(( "pfr_glyph_line_to: invalid glyph data\n" ));
+ goto Exit;
+ }
error = FT_GLYPHLOADER_CHECK_POINTS( loader, 1, 0 );
if ( !error )
@@ -147,6 +152,7 @@
outline->n_points++;
}
+ Exit:
return error;
}
@@ -163,7 +169,12 @@
/* check that we have begun a new path */
- FT_ASSERT( glyph->path_begun != 0 );
+ if ( !glyph->path_begun )
+ {
+ error = PFR_Err_Invalid_Table;
+ FT_ERROR(( "pfr_glyph_line_to: invalid glyph data\n" ));
+ goto Exit;
+ }
error = FT_GLYPHLOADER_CHECK_POINTS( loader, 3, 0 );
if ( !error )
@@ -182,6 +193,7 @@
outline->n_points = (FT_Short)( outline->n_points + 3 );
}
+ Exit:
return error;
}