[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/swf/tag_loaders.cpp
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog server/swf/tag_loaders.cpp |
Date: |
Mon, 28 Jan 2008 20:36:29 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 08/01/28 20:36:29
Modified files:
. : ChangeLog
server/swf : tag_loaders.cpp
Log message:
robustness improvements. Fix bug #22152.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5512&r2=1.5513
http://cvs.savannah.gnu.org/viewcvs/gnash/server/swf/tag_loaders.cpp?cvsroot=gnash&r1=1.180&r2=1.181
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5512
retrieving revision 1.5513
diff -u -b -r1.5512 -r1.5513
--- ChangeLog 28 Jan 2008 19:42:21 -0000 1.5512
+++ ChangeLog 28 Jan 2008 20:36:28 -0000 1.5513
@@ -1,5 +1,7 @@
2008-01-28 Sandro Santilli <address@hidden>
+ * server/swf/tag_loaders.cpp (button_sound_loader): robustness
+ improvements. Fix bug #22152.
* server/parser/action_buffer.cpp (read): just log an swf error
and return if the action buffer is 0 bytes long.
Fixes bug #22148.
Index: server/swf/tag_loaders.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/swf/tag_loaders.cpp,v
retrieving revision 1.180
retrieving revision 1.181
diff -u -b -r1.180 -r1.181
--- server/swf/tag_loaders.cpp 21 Jan 2008 20:56:03 -0000 1.180
+++ server/swf/tag_loaders.cpp 28 Jan 2008 20:36:29 -0000 1.181
@@ -17,7 +17,7 @@
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
//
-/* $Id: tag_loaders.cpp,v 1.180 2008/01/21 20:56:03 rsavoye Exp $ */
+/* $Id: tag_loaders.cpp,v 1.181 2008/01/28 20:36:29 strk Exp $ */
#ifdef HAVE_CONFIG_H
#include "gnashconfig.h"
@@ -923,10 +923,25 @@
int button_character_id = in->read_u16();
character_def* chdef = m->get_character_def(button_character_id);
+ if ( ! chdef )
+ {
+ IF_VERBOSE_MALFORMED_SWF(
+ log_swferror(_("DEFINEBUTTONSOUND refers to an unknown character def
%d"), button_character_id);
+ );
+ return;
+ }
- assert ( dynamic_cast<button_character_definition*> (chdef) );
- button_character_definition* ch =
static_cast<button_character_definition*> (chdef);
- assert(ch != NULL);
+ button_character_definition* ch =
dynamic_cast<button_character_definition*> (chdef);
+ if ( ! ch )
+ {
+ IF_VERBOSE_MALFORMED_SWF(
+ log_swferror(_("DEFINEBUTTONSOUND refers to character id %d, "
+ "being a %s (expected a button definition)"),
+ button_character_id,
+ typeName(*chdef).c_str());
+ );
+ return;
+ }
ch->read(in, tag, m);
}