gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash server/swf/tag_loaders.cpp ChangeLog


From: Sandro Santilli
Subject: [Gnash-commit] gnash server/swf/tag_loaders.cpp ChangeLog
Date: Fri, 19 Oct 2007 09:20:56 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/10/19 09:20:56

Modified files:
        server/swf     : tag_loaders.cpp 
        .              : ChangeLog 

Log message:
            * server/swf/tag_loaders.cpp (video_loader): don't abort on 
malformed
              SWFs.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/server/swf/tag_loaders.cpp?cvsroot=gnash&r1=1.146&r2=1.147
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4642&r2=1.4643

Patches:
Index: server/swf/tag_loaders.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/swf/tag_loaders.cpp,v
retrieving revision 1.146
retrieving revision 1.147
diff -u -b -r1.146 -r1.147
--- server/swf/tag_loaders.cpp  18 Oct 2007 11:47:56 -0000      1.146
+++ server/swf/tag_loaders.cpp  19 Oct 2007 09:20:55 -0000      1.147
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-/* $Id: tag_loaders.cpp,v 1.146 2007/10/18 11:47:56 cmusick Exp $ */
+/* $Id: tag_loaders.cpp,v 1.147 2007/10/19 09:20:55 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -1406,11 +1406,25 @@
     uint16_t character_id = in->read_u16();
     character_def* chdef = m->get_character_def(character_id);
 
-    assert ( dynamic_cast<video_stream_definition*> (chdef) );
-    video_stream_definition* ch = static_cast<video_stream_definition*> 
(chdef);
-    assert(ch != NULL);
+    if ( ! chdef )
+    {
+        IF_VERBOSE_MALFORMED_SWF(
+        log_swferror(_("VideoFrame tag refers to unknown video stream id %d"), 
character_id);
+        );
+        return;
+    }
 
-    ch->read(in, tag, m);
+    // TODO: add a character_def::cast_to_video_def ?
+    video_stream_definition* vdef = dynamic_cast<video_stream_definition*> 
(chdef);
+    if ( ! vdef )
+    {
+        IF_VERBOSE_MALFORMED_SWF(
+        log_swferror(_("VideoFrame tag refers to a non-video character %d 
(%s)"), character_id, typeName(*chdef).c_str());
+        );
+        return;
+    }
+
+    vdef->read(in, tag, m);
 }
 
 void

Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4642
retrieving revision 1.4643
diff -u -b -r1.4642 -r1.4643
--- ChangeLog   19 Oct 2007 08:34:31 -0000      1.4642
+++ ChangeLog   19 Oct 2007 09:20:55 -0000      1.4643
@@ -1,3 +1,8 @@
+2007-10-19 Sandro Santilli <address@hidden>
+
+       * server/swf/tag_loaders.cpp (video_loader): don't abort on malformed
+         SWFs.
+
 2007-10-19 Tomas Groth Christensen <address@hidden>
 
        * backend/Makefile.am: Only compile render_handler_tri.cpp if




reply via email to

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