Catch invalid frame dimensions.

* io-gif.c (gif_get_frame_info): Catch invalid frame dimensions.
This commit is contained in:
Matthias Clasen 2002-03-15 23:27:55 +00:00
parent 2a8395b67b
commit 006a84274f
2 changed files with 15 additions and 0 deletions

View File

@ -1,3 +1,7 @@
2002-03-15 Matthias Clasen <maclas@gmx.de>
* io-gif.c (gif_get_frame_info): Catch invalid frame dimensions.
2002-03-13 Matthias Clasen <maclas@gmx.de>
* test-images.h: Add valid_ras_test and invalid_bmp_1.

View File

@ -1135,6 +1135,17 @@ gif_get_frame_info (GifContext *context)
context->x_offset = LM_to_uint (buf[0], buf[1]);
context->y_offset = LM_to_uint (buf[2], buf[3]);
if ((context->frame_height == 0) || (context->frame_len == 0)) {
context->state = GIF_DONE;
g_set_error (context->error,
GDK_PIXBUF_ERROR,
GDK_PIXBUF_ERROR_CORRUPT_IMAGE,
_("GIF image contained a frame with height or width 0."));
return -2;
}
if (((context->frame_height + context->y_offset) > context->height) ||
((context->frame_len + context->x_offset) > context->width)) {
/* All frames must fit in the image bounds */