gtk+ r19756 - trunk/gdk-pixbuf



Author: csaavedra
Date: Tue Mar 11 21:05:26 2008
New Revision: 19756
URL: http://svn.gnome.org/viewvc/gtk+?rev=19756&view=rev

Log:
2008-03-11  Claudio Saavedra  <csaavedra alumnos utalca cl>

        * io-bmp.c: (DecodeHeader): Check for the BMP header magic numbers
        before decoding it.  (#505085)



Modified:
   trunk/gdk-pixbuf/ChangeLog
   trunk/gdk-pixbuf/io-bmp.c

Modified: trunk/gdk-pixbuf/io-bmp.c
==============================================================================
--- trunk/gdk-pixbuf/io-bmp.c	(original)
+++ trunk/gdk-pixbuf/io-bmp.c	Tue Mar 11 21:05:26 2008
@@ -258,6 +258,17 @@
 {
 	gint clrUsed;
 
+	/* First check for the two first bytes content. A sane
+	   BMP file must start with bytes 0x42 0x4D.  */
+	if (*BFH != 0x42 || *(BFH + 1) != 0x4D) {
+		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;
+	}
+
         /* FIXME this is totally unrobust against bogus image data. */
 	if (State->BufferSize < lsb_32 (&BIH[0]) + 14) {
 		State->BufferSize = lsb_32 (&BIH[0]) + 14;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]