gnash-commit
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]