gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog server/parser/edit_text_charact...


From: Benjamin Wolsey
Subject: [Gnash-commit] gnash ChangeLog server/parser/edit_text_charact...
Date: Mon, 11 Feb 2008 16:32:53 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Benjamin Wolsey <bwy>   08/02/11 16:32:52

Modified files:
        .              : ChangeLog 
        server/parser  : edit_text_character_def.cpp 
                         text_character_def.cpp 

Log message:
        2008-02-11 Benjamin Wolsey <address@hidden>
        
                * server/parser/edit_text_character_def.cpp: use ensureBytes 
checking,
                  fixes some zzuf assertion failures.
                * server/parser/text_character_def.cpp: use ensureBytes 
checking.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5614&r2=1.5615
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/edit_text_character_def.cpp?cvsroot=gnash&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/text_character_def.cpp?cvsroot=gnash&r1=1.8&r2=1.9

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5614
retrieving revision 1.5615
diff -u -b -r1.5614 -r1.5615
--- ChangeLog   11 Feb 2008 12:55:21 -0000      1.5614
+++ ChangeLog   11 Feb 2008 16:32:52 -0000      1.5615
@@ -1,3 +1,9 @@
+2008-02-11 Benjamin Wolsey <address@hidden>
+
+       * server/parser/edit_text_character_def.cpp: use ensureBytes checking,
+         fixes some zzuf crashers.
+       * server/parser/text_character_def.cpp: use ensureBytes checking.
+
 2008-02-11 Udo Giacomozzi <address@hidden>
 
        * server/button_character_instance.cpp, server/edit_text_character.cpp,

Index: server/parser/edit_text_character_def.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/parser/edit_text_character_def.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- server/parser/edit_text_character_def.cpp   21 Jan 2008 20:56:00 -0000      
1.16
+++ server/parser/edit_text_character_def.cpp   11 Feb 2008 16:32:52 -0000      
1.17
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-/* $Id: edit_text_character_def.cpp,v 1.16 2008/01/21 20:56:00 rsavoye Exp $ */
+/* $Id: edit_text_character_def.cpp,v 1.17 2008/02/11 16:32:52 bwy Exp $ */
 
 // Based on the public domain text.cpp of Thatcher Ulrich <address@hidden> 2003
 
@@ -44,6 +44,7 @@
        m_rect.read(in);
 
        in->align();
+       in->ensureBytes(1);
        bool    has_text = in->read_bit();
        m_word_wrap = in->read_bit();
        m_multiline = in->read_bit();
@@ -53,6 +54,7 @@
        bool    has_max_length = in->read_bit(); 
        bool    has_font = in->read_bit(); 
 
+       in->ensureBytes(1);
        in->read_bit(); // reserved
        m_auto_size = in->read_bit(); 
        bool    has_layout = in->read_bit(); 
@@ -64,6 +66,7 @@
 
        if (has_font)
        {
+               in->ensureBytes(4);
                m_font_id = in->read_u16();
                m_text_height = in->read_u16();
        }
@@ -75,16 +78,16 @@
 
        if (has_max_length)
        {
+               in->ensureBytes(2);
                m_max_length = in->read_u16();
        }
 
        if (has_layout)
        {
-               m_alignment = (alignment) in->read_u8();
-               //m_left_margin = (float) in->read_u16();
-               m_left_margin = in->read_u16();
-               //m_right_margin = (float) in->read_u16();
-               m_right_margin = in->read_u16();
+               in->ensureBytes(9); //1 + 2 + 2 + 2 + 2
+               m_alignment = static_cast<alignment>(in->read_u8());
+               m_left_margin = in->read_u16(); // used to be cast to float
+               m_right_margin = in->read_u16(); // used to be cast to float
                m_indent = in->read_s16();
                m_leading = in->read_s16();
        }

Index: server/parser/text_character_def.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/parser/text_character_def.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- server/parser/text_character_def.cpp        4 Dec 2007 11:45:32 -0000       
1.8
+++ server/parser/text_character_def.cpp        11 Feb 2008 16:32:52 -0000      
1.9
@@ -23,6 +23,7 @@
        m_rect.read(in);
        m_matrix.read(in);
 
+       in->ensureBytes(2); // glyph_bits + advance_bits
        int     glyph_bits = in->read_u8();
        int     advance_bits = in->read_u8();
 
@@ -65,6 +66,7 @@
 
                        if (has_font)
                        {
+                               in->ensureBytes(2);
                                boost::uint16_t font_id = in->read_u16();
                                if ( ! style.setFont(font_id, *m) )
                                {
@@ -93,6 +95,8 @@
                        if (has_x_offset)
                        {
                                style.m_has_x_offset = true;
+                               
+                               in->ensureBytes(2);
                                style.m_x_offset = in->read_s16();
                                IF_VERBOSE_PARSE(
                                log_parse(_("  has_x_offset = %g"), 
style.m_x_offset);
@@ -106,6 +110,8 @@
                        if (has_y_offset)
                        {
                                style.m_has_y_offset = true;
+                               
+                               in->ensureBytes(2);
                                style.m_y_offset = in->read_s16();
                                IF_VERBOSE_PARSE(
                                log_parse(_("  has_y_offset = %g"), 
style.m_y_offset);
@@ -118,6 +124,7 @@
                        }
                        if (has_font)
                        {
+                               in->ensureBytes(2);
                                style.m_text_height = in->read_u16();
                                IF_VERBOSE_PARSE(
                                log_parse(_("  text_height = %g"), 
style.m_text_height);




reply via email to

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