[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash server/swf/tag_loaders.cpp ChangeLog,
Sandro Santilli <=