[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, 28 Nov 2007 17:35:45 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 07/11/28 17:35:45
Modified files:
. : ChangeLog
server/swf : tag_loaders.cpp
Log message:
pretty-print about premature end of tag while inflating, add last error
message when an error occurs during inflating.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4997&r2=1.4998
http://cvs.savannah.gnu.org/viewcvs/gnash/server/swf/tag_loaders.cpp?cvsroot=gnash&r1=1.156&r2=1.157
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4997
retrieving revision 1.4998
diff -u -b -r1.4997 -r1.4998
--- ChangeLog 28 Nov 2007 16:59:36 -0000 1.4997
+++ ChangeLog 28 Nov 2007 17:35:44 -0000 1.4998
@@ -1,5 +1,11 @@
2007-11-28 Sandro Santilli <address@hidden>
+ * server/swf/tag_loaders.cpp (inflate_wrapper): pretty-print about
+ premature end of tag while inflating, add last error message when
+ an error occurs during inflating.
+
+2007-11-28 Sandro Santilli <address@hidden>
+
* gui/cpp.cpp: fix build with ENABLE_REGION_UPDATES_DEBUGGING
defined.
* server/swf/tag_loaders.cpp (inflate_wrapper): don't read past
Index: server/swf/tag_loaders.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/swf/tag_loaders.cpp,v
retrieving revision 1.156
retrieving revision 1.157
diff -u -b -r1.156 -r1.157
--- server/swf/tag_loaders.cpp 28 Nov 2007 16:16:30 -0000 1.156
+++ server/swf/tag_loaders.cpp 28 Nov 2007 17:35:44 -0000 1.157
@@ -17,7 +17,7 @@
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
//
-/* $Id: tag_loaders.cpp,v 1.156 2007/11/28 16:16:30 strk Exp $ */
+/* $Id: tag_loaders.cpp,v 1.157 2007/11/28 17:35:44 strk Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -341,7 +341,7 @@
int err = inflateInit(&d_stream);
if (err != Z_OK) {
IF_VERBOSE_MALFORMED_SWF(
- log_swferror(_("inflate_wrapper() inflateInit() returned %d"), err);
+ log_swferror(_("inflate_wrapper() inflateInit() returned %d (%s)"),
err, d_stream.msg);
);
return;
}
@@ -356,7 +356,18 @@
unsigned int chunkSize = CHUNKSIZE;
assert(in.get_position() <= endTagPos);
unsigned int availableBytes = endTagPos - in.get_position();
- if ( availableBytes < chunkSize ) chunkSize = availableBytes;
+ if ( availableBytes < chunkSize )
+ {
+ if ( ! availableBytes )
+ {
+ // nothing more to read
+ IF_VERBOSE_MALFORMED_SWF(
+ log_swferror(_("inflate_wrapper(): no end of zstream
found within swf tag boundaries"));
+ );
+ break;
+ }
+ chunkSize = availableBytes;
+ }
// Fill the buffer
assert(sizeof(char) == sizeof(uint8_t));
@@ -365,11 +376,16 @@
d_stream.avail_in = chunkSize;
err = inflate(&d_stream, Z_SYNC_FLUSH);
- if (err == Z_STREAM_END) break;
+ if (err == Z_STREAM_END)
+ {
+ // correct end
+ break;
+ }
+
if (err != Z_OK)
{
IF_VERBOSE_MALFORMED_SWF(
- log_swferror(_("inflate_wrapper() inflate() returned %d"), err);
+ log_swferror(_("inflate_wrapper() inflate() returned %d (%s)"),
err, d_stream.msg);
);
break;
}
@@ -378,7 +394,7 @@
err = inflateEnd(&d_stream);
if (err != Z_OK)
{
- log_error(_("inflate_wrapper() inflateEnd() return %d"), err);
+ log_error(_("inflate_wrapper() inflateEnd() return %d (%s)"), err,
d_stream.msg);
}
}
#endif // HAVE_ZLIB_H