[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/parser/sprite_definition...
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog server/parser/sprite_definition... |
Date: |
Fri, 15 Feb 2008 08:59:56 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 08/02/15 08:59:56
Modified files:
. : ChangeLog
server/parser : sprite_definition.cpp
Log message:
handle END tags before advertised end offset of a DEFINESPRITE tag.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5658&r2=1.5659
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/sprite_definition.cpp?cvsroot=gnash&r1=1.25&r2=1.26
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5658
retrieving revision 1.5659
diff -u -b -r1.5658 -r1.5659
--- ChangeLog 15 Feb 2008 08:31:03 -0000 1.5658
+++ ChangeLog 15 Feb 2008 08:59:55 -0000 1.5659
@@ -1,5 +1,10 @@
2008-02-15 Sandro Santilli <address@hidden>
+ * server/parser/sprite_definition.cpp: handle END tags before
+ advertised end offset of a DEFINESPRITE tag.
+
+2008-02-15 Sandro Santilli <address@hidden>
+
* testsuite/swfdec/swfdec_gnash_tester: accept a second argument
to specify additional flags. Currently unused by might get
handy to augment sleep time for some load to be more likely
Index: server/parser/sprite_definition.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/parser/sprite_definition.cpp,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- server/parser/sprite_definition.cpp 21 Jan 2008 20:56:01 -0000 1.25
+++ server/parser/sprite_definition.cpp 15 Feb 2008 08:59:56 -0000 1.26
@@ -68,7 +68,7 @@
void
sprite_definition::read(stream* in)
{
- int tag_end = in->get_tag_end_position();
+ unsigned long tag_end = in->get_tag_end_position();
m_frame_count = in->read_u16();
@@ -78,7 +78,7 @@
m_loading_frame = 0;
- while ((boost::uint32_t) in->get_position() < (boost::uint32_t) tag_end)
+ while ( in->get_position() < tag_end )
{
SWF::tag_type tag_type = in->open_tag();
@@ -92,7 +92,22 @@
}
);
- if (tag_type == SWF::SHOWFRAME)
+ if (tag_type == SWF::END)
+ {
+ if (in->get_position() != tag_end)
+ {
+ IF_VERBOSE_MALFORMED_SWF(
+ // Safety break, so we don't read past
+ // the end of the movie.
+ log_swferror(_("Hit end tag, "
+ "before the advertised DEFINESPRITE
end; "
+ "stopping for safety."));
+ )
+ in->close_tag();
+ break;
+ }
+ }
+ else if (tag_type == SWF::SHOWFRAME)
{
// show frame tag -- advance to the next frame.
++m_loading_frame;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog server/parser/sprite_definition...,
Sandro Santilli <=