[Top][All Lists]
[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: |
Wed, 07 Feb 2007 16:29:36 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 07/02/07 16:29:36
Modified files:
. : ChangeLog
server/swf : tag_loaders.cpp
Log message:
* server/swf/tag_loaders.cpp: use log_swferror where
appropriate,
(swf_event::read): tolerate malformed header.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.2262&r2=1.2263
http://cvs.savannah.gnu.org/viewcvs/gnash/server/swf/tag_loaders.cpp?cvsroot=gnash&r1=1.72&r2=1.73
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.2262
retrieving revision 1.2263
diff -u -b -r1.2262 -r1.2263
--- ChangeLog 7 Feb 2007 13:31:26 -0000 1.2262
+++ ChangeLog 7 Feb 2007 16:29:35 -0000 1.2263
@@ -1,8 +1,7 @@
-M ChangeLog
-M server/as_object.cpp
-M server/types.cpp
-M server/asobj/Object.cpp
-M server/vm/fn_call.h
+2007-02-07 Sandro Santilli <address@hidden>
+
+ * server/swf/tag_loaders.cpp: use log_swferror where appropriate,
+ (swf_event::read): tolerate malformed header.
2007-02-07 Sandro Santilli <address@hidden>
Index: server/swf/tag_loaders.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/swf/tag_loaders.cpp,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -b -r1.72 -r1.73
--- server/swf/tag_loaders.cpp 7 Feb 2007 09:07:36 -0000 1.72
+++ server/swf/tag_loaders.cpp 7 Feb 2007 16:29:36 -0000 1.73
@@ -14,7 +14,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-/* $Id: tag_loaders.cpp,v 1.72 2007/02/07 09:07:36 strk Exp $ */
+/* $Id: tag_loaders.cpp,v 1.73 2007/02/07 16:29:36 strk Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -141,9 +141,11 @@
}
else
{
- log_warning("frame_label_loader end position " SIZET_FMT ", "
- "read up to " SIZET_FMT " (Malformed SWF?)",
+ IF_VERBOSE_MALFORMED_SWF(
+ log_swferror("frame_label_loader end position " SIZET_FMT ", "
+ "read up to " SIZET_FMT,
end_tag, curr_pos);
+ );
}
}
@@ -735,8 +737,10 @@
}
else
{
- log_error("define_font_info_loader: "
+ IF_VERBOSE_MALFORMED_SWF(
+ log_swferror("define_font_info_loader: "
"can't find font w/ id %d", font_id);
+ );
}
}
@@ -860,15 +864,30 @@
action_buffer action;
action.read(in);
- if (action.get_length() != event_length)
+ size_t readlen = action.size();
+ if (readlen > event_length)
{
- log_error("swf_event::read(), "
+ IF_VERBOSE_MALFORMED_SWF(
+ log_swferror("swf_event::read(), "
"event_length = %d, "
- "but read %lu",
- event_length,
- static_cast<unsigned
long>(action.get_length()));
+ "but read " SIZET_FMT
+ ". Breaking for safety.",
+ event_length, readlen);
+ );
+ // or should we just continue here ?
break;
}
+ else if ( readlen < event_length )
+ {
+ IF_VERBOSE_MALFORMED_SWF(
+ log_swferror("swf_event::read(), "
+ "event_length = %d, "
+ "but read " SIZET_FMT
+ ". Skipping excessive bytes.",
+ event_length, readlen);
+ );
+ in->skip_bytes(event_length - readlen);
+ }
// 13 bits reserved, 19 bits used
static const event_id s_code_bits[19] =
@@ -899,7 +918,9 @@
// Let's see if the event flag we received is for an
event that we know of
if ((pow(2.0, int( sizeof(s_code_bits) /
sizeof(s_code_bits[0]) )) - 1) < flags)
{
- log_error("swf_event::read() -- unknown /
unhandled event type received, flags = 0x%x", flags);
+ IF_VERBOSE_MALFORMED_SWF(
+ log_swferror("swf_event::read() -- unknown /
unhandled event type received, flags = 0x%x", flags);
+ );
}
for (int i = 0, mask = 1; i <
int(sizeof(s_code_bits)/sizeof(s_code_bits[0])); i++, mask <<= 1)
@@ -1184,7 +1205,9 @@
// would be a malformed SWF
if ( ! dynamic_cast<movie_def_impl*>(m) )
{
- log_error("Malformed SWF (nested DEFINESPRITE tags)");
+ IF_VERBOSE_MALFORMED_SWF(
+ log_swferror("nested DEFINESPRITE tags");
+ );
}
// will automatically read the sprite
@@ -1404,7 +1427,9 @@
// something smarter, if we agree on semantic
if (source_movie == m)
{
- log_warning("Won't let movie import it's own exported
symbols... ");
+ IF_VERBOSE_MALFORMED_SWF(
+ log_swferror("Movie attempts to import symbols from
itself.");
+ );
return;
}
}
@@ -1583,7 +1608,9 @@
if (! (sample_rate >= 0 && sample_rate <= 3))
{
- log_error("Bad sample rate read from SWF header.");
+ IF_VERBOSE_MALFORMED_SWF(
+ log_swferror("Bad sample rate read from SWF header.");
+ );
return;
}
@@ -1676,7 +1703,9 @@
{
if (s_sound_handler)
{
- log_error("start_sound_loader: sound_id %d is not
defined", sound_id);
+ IF_VERBOSE_MALFORMED_SWF(
+ log_swferror("start_sound_loader: sound_id %d is not
defined", sound_id);
+ );
}
}
@@ -1727,7 +1756,9 @@
if (! (sample_rate >= 0 && sample_rate <= 3))
{
- log_error("Bad sample rate read from SWF header.");
+ IF_VERBOSE_MALFORMED_SWF(
+ log_swferror("Bad sample rate read from SWF header.");
+ );
return;
}