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 <[EMAIL PROTECTED]> + + * server/swf/tag_loaders.cpp (video_loader): don't abort on malformed + SWFs. + 2007-10-19 Tomas Groth Christensen <[EMAIL PROTECTED]> * backend/Makefile.am: Only compile render_handler_tri.cpp if _______________________________________________ Gnash-commit mailing list Gnash-commit@gnu.org http://lists.gnu.org/mailman/listinfo/gnash-commit