* src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
diff --git a/ChangeLog b/ChangeLog
index 7069363..78b872b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2007-06-06 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
+
2007-06-05 Werner Lemberg <wl@gnu.org>
* src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
diff --git a/src/base/ftoutln.c b/src/base/ftoutln.c
index 2a35659..6926f3a 100644
--- a/src/base/ftoutln.c
+++ b/src/base/ftoutln.c
@@ -83,7 +83,9 @@
FT_Int last; /* index of last point in contour */
- last = outline->contours[n];
+ last = outline->contours[n];
+ if ( last < 0 )
+ goto Invalid_Outline;
limit = outline->points + last;
v_start = outline->points[first];