Fix Savannah bug #30235.
* src/pfr/pfrgload.c (pfr_glyph_load_simple): Protect against invalid indices if there aren't any coordinates for indexing.
This commit is contained in:
parent
b21d7bc567
commit
3cf87f4d27
|
@ -1,3 +1,10 @@
|
||||||
|
2010-06-24 Werner Lemberg <wl@gnu.org>
|
||||||
|
|
||||||
|
Fix Savannah bug #30235.
|
||||||
|
|
||||||
|
* src/pfr/pfrgload.c (pfr_glyph_load_simple): Protect against
|
||||||
|
invalid indices if there aren't any coordinates for indexing.
|
||||||
|
|
||||||
2010-06-24 Werner Lemberg <wl@gnu.org>
|
2010-06-24 Werner Lemberg <wl@gnu.org>
|
||||||
|
|
||||||
[bdf]: Font properties are optional.
|
[bdf]: Font properties are optional.
|
||||||
|
|
|
@ -388,7 +388,7 @@
|
||||||
|
|
||||||
case 2: /* horizontal line to */
|
case 2: /* horizontal line to */
|
||||||
FT_TRACE6(( "- horizontal line to cx.%d", format_low ));
|
FT_TRACE6(( "- horizontal line to cx.%d", format_low ));
|
||||||
if ( format_low > x_count )
|
if ( format_low > x_count || x_count == 0 )
|
||||||
goto Failure;
|
goto Failure;
|
||||||
pos[0].x = glyph->x_control[format_low];
|
pos[0].x = glyph->x_control[format_low];
|
||||||
pos[0].y = pos[3].y;
|
pos[0].y = pos[3].y;
|
||||||
|
@ -398,7 +398,7 @@
|
||||||
|
|
||||||
case 3: /* vertical line to */
|
case 3: /* vertical line to */
|
||||||
FT_TRACE6(( "- vertical line to cy.%d", format_low ));
|
FT_TRACE6(( "- vertical line to cy.%d", format_low ));
|
||||||
if ( format_low > y_count )
|
if ( format_low > y_count || y_count == 0 )
|
||||||
goto Failure;
|
goto Failure;
|
||||||
pos[0].x = pos[3].x;
|
pos[0].x = pos[3].x;
|
||||||
pos[0].y = glyph->y_control[format_low];
|
pos[0].y = glyph->y_control[format_low];
|
||||||
|
@ -440,7 +440,7 @@
|
||||||
case 0: /* 8-bit index */
|
case 0: /* 8-bit index */
|
||||||
PFR_CHECK( 1 );
|
PFR_CHECK( 1 );
|
||||||
idx = PFR_NEXT_BYTE( p );
|
idx = PFR_NEXT_BYTE( p );
|
||||||
if ( idx > x_count )
|
if ( idx > x_count || x_count == 0 )
|
||||||
goto Failure;
|
goto Failure;
|
||||||
cur->x = glyph->x_control[idx];
|
cur->x = glyph->x_control[idx];
|
||||||
FT_TRACE7(( " cx#%d", idx ));
|
FT_TRACE7(( " cx#%d", idx ));
|
||||||
|
@ -470,7 +470,7 @@
|
||||||
case 0: /* 8-bit index */
|
case 0: /* 8-bit index */
|
||||||
PFR_CHECK( 1 );
|
PFR_CHECK( 1 );
|
||||||
idx = PFR_NEXT_BYTE( p );
|
idx = PFR_NEXT_BYTE( p );
|
||||||
if ( idx > y_count )
|
if ( idx > y_count || y_count == 0 )
|
||||||
goto Failure;
|
goto Failure;
|
||||||
cur->y = glyph->y_control[idx];
|
cur->y = glyph->y_control[idx];
|
||||||
FT_TRACE7(( " cy#%d", idx ));
|
FT_TRACE7(( " cy#%d", idx ));
|
||||||
|
|
Loading…
Reference in New Issue