Set a GDK_ERROR_CORRUPT_IMAGE error if the loader is closed while still

2008-03-11  Claudio Saavedra  <csaavedra@alumnos.utalca.cl>

	* io-bmp.c: (gdk_pixbuf__bmp_image_stop_load): Set a
	GDK_ERROR_CORRUPT_IMAGE error if the loader is closed while
	still reading the headers.  (#505085)



svn path=/trunk/; revision=19757
This commit is contained in:
Claudio Saavedra 2008-03-11 21:06:59 +00:00 committed by Claudio Saavedra
parent 9aa1be5a0d
commit d1639c8730
2 changed files with 19 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2008-03-11 Claudio Saavedra <csaavedra@alumnos.utalca.cl>
* io-bmp.c: (gdk_pixbuf__bmp_image_stop_load): Set a
GDK_ERROR_CORRUPT_IMAGE error if the loader is closed while
still reading the headers. (#505085)
2008-03-11 Claudio Saavedra <csaavedra@alumnos.utalca.cl> 2008-03-11 Claudio Saavedra <csaavedra@alumnos.utalca.cl>
* io-bmp.c: (DecodeHeader): Check for the BMP header magic numbers * io-bmp.c: (DecodeHeader): Check for the BMP header magic numbers

View File

@ -693,6 +693,8 @@ gdk_pixbuf__bmp_image_begin_load(GdkPixbufModuleSizeFunc size_func,
*/ */
static gboolean gdk_pixbuf__bmp_image_stop_load(gpointer data, GError **error) static gboolean gdk_pixbuf__bmp_image_stop_load(gpointer data, GError **error)
{ {
gboolean retval = TRUE;
struct bmp_progressive_state *context = struct bmp_progressive_state *context =
(struct bmp_progressive_state *) data; (struct bmp_progressive_state *) data;
@ -707,10 +709,20 @@ static gboolean gdk_pixbuf__bmp_image_stop_load(gpointer data, GError **error)
if (context->pixbuf) if (context->pixbuf)
g_object_unref(context->pixbuf); g_object_unref(context->pixbuf);
if (context->read_state == READ_STATE_HEADERS) {
if (error && *error == NULL) {
g_set_error (error,
GDK_PIXBUF_ERROR,
GDK_PIXBUF_ERROR_CORRUPT_IMAGE,
_("Premature end-of-file encountered"));
}
retval = FALSE;
}
g_free(context->buff); g_free(context->buff);
g_free(context); g_free(context);
return TRUE; return retval;
} }