gnash-commit
[Top][All Lists]
Advanced

[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);
 }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]