diff --git a/gdk-pixbuf/ChangeLog b/gdk-pixbuf/ChangeLog index ef78d72341..09a0954a72 100644 --- a/gdk-pixbuf/ChangeLog +++ b/gdk-pixbuf/ChangeLog @@ -1,3 +1,8 @@ +2002-03-12 Matthias Clasen + + * io-bmp.c (DecodeHeader): Replace a g_assert_not_reached () + which could actually be reached by a proper error status return. + 2002-03-05 Matthias Clasen * test-loaders.c, test-images.h: More random tests. diff --git a/gdk-pixbuf/io-bmp.c b/gdk-pixbuf/io-bmp.c index 7f7c2d1ddf..b8f9ee2bb0 100644 --- a/gdk-pixbuf/io-bmp.c +++ b/gdk-pixbuf/io-bmp.c @@ -375,8 +375,14 @@ static gboolean DecodeHeader(unsigned char *BFH, unsigned char *BIH, } else if (State->Compressed == BI_BITFIELDS) { State->read_state = READ_STATE_BITMASKS; State->BufferSize = 12; - } else - g_assert_not_reached (); + } else { + g_set_error (error, + GDK_PIXBUF_ERROR, + GDK_PIXBUF_ERROR_CORRUPT_IMAGE, + _("BMP image has bogus header data")); + State->read_state = READ_STATE_ERROR; + return FALSE; + } State->buff = g_realloc (State->buff, State->BufferSize);