[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/stream.h server/swf/Plac...
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog server/stream.h server/swf/Plac... |
Date: |
Tue, 15 May 2007 13:48:37 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 07/05/15 13:48:37
Modified files:
. : ChangeLog
server : stream.h
server/swf : PlaceObject2Tag.cpp
Log message:
* server/stream.{cpp,h} (skip_bytes): return a boolean value
for success/failure.
* server/swf/PlaceObject2Tag.cpp (readPlaceAction): check
return from stream::skip_bytes.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.3228&r2=1.3229
http://cvs.savannah.gnu.org/viewcvs/gnash/server/stream.h?cvsroot=gnash&r1=1.19&r2=1.20
http://cvs.savannah.gnu.org/viewcvs/gnash/server/swf/PlaceObject2Tag.cpp?cvsroot=gnash&r1=1.9&r2=1.10
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.3228
retrieving revision 1.3229
diff -u -b -r1.3228 -r1.3229
--- ChangeLog 15 May 2007 13:26:46 -0000 1.3228
+++ ChangeLog 15 May 2007 13:48:36 -0000 1.3229
@@ -1,5 +1,9 @@
2007-05-15 Sandro Santilli <address@hidden>
+ * server/stream.{cpp,h} (skip_bytes): return a boolean value
+ for success/failure.
+ * server/swf/PlaceObject2Tag.cpp (readPlaceAction): check
+ return from stream::skip_bytes.
* libbase/jpeg.cpp: fix typo introduced in last commit.
* server/swf/PlaceObject2Tag.cpp (readPlaceActions): don't abort when
reserved flag != 0.
Index: server/stream.h
===================================================================
RCS file: /sources/gnash/gnash/server/stream.h,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- server/stream.h 15 May 2007 09:59:08 -0000 1.19
+++ server/stream.h 15 May 2007 13:48:37 -0000 1.20
@@ -134,14 +134,19 @@
/// Discard given number of bytes
//
- /// Note: crossing a tag boundary triggers an error,
- /// but I'm not sure we really want this --strk;
- void skip_bytes(unsigned num)
+ ///
+ /// @return true on success, false on failure
+ /// Possible failures:
+ /// - skipping given number of bytes reaches end of stream.
+ /// - skipping given number of bytes reaches end of
+ /// current tag, if any.
+ ///
+ bool skip_bytes(unsigned num)
{
// there's probably a better way, but
// it's the interface that counts atm
size_t curpos = get_position();
- set_position(curpos+num);
+ return set_position(curpos+num);
}
/// Discard all bytes up to end of tag
Index: server/swf/PlaceObject2Tag.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/swf/PlaceObject2Tag.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- server/swf/PlaceObject2Tag.cpp 15 May 2007 13:08:07 -0000 1.9
+++ server/swf/PlaceObject2Tag.cpp 15 May 2007 13:48:37 -0000 1.10
@@ -17,7 +17,7 @@
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
//
-/* $Id: PlaceObject2Tag.cpp,v 1.9 2007/05/15 13:08:07 strk Exp $ */
+/* $Id: PlaceObject2Tag.cpp,v 1.10 2007/05/15 13:48:37 strk Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -142,7 +142,16 @@
". Skipping excessive bytes."),
event_length, readlen);
);
- in->skip_bytes(event_length - readlen);
+
+ if ( ! in->skip_bytes(event_length - readlen) )
+ {
+ // TODO: should we throw a ParserException
instead
+ // so to completely discard this tag ?
+ IF_VERBOSE_MALFORMED_SWF(
+ log_swferror(_("Bytes skipping failed."));
+ );
+ break;
+ }
}
// 13 bits reserved, 19 bits used
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog server/stream.h server/swf/Plac...,
Sandro Santilli <=