Fix acess outside of a loaded frame and some memory leaks on failure.
authorOwen Taylor <otaylor@redhat.com>
Fri, 10 May 2002 18:44:47 +0000 (18:44 +0000)
committerOwen Taylor <otaylor@src.gnome.org>
Fri, 10 May 2002 18:44:47 +0000 (18:44 +0000)
Fri May 10 14:41:27 2002  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgdef.c (TT_Load_GDEF_Table): Fix acess
        outside of a loaded frame and some memory leaks
        on failure.

src/ftxgdef.c

index e3aaf92..e585286 100644 (file)
       gdef->GlyphClassDef.loaded = FALSE;
 
     if ( ACCESS_Frame( 2L ) )
-      goto Fail0;
+      goto Fail1;
 
     new_offset = GET_UShort();
 
       gdef->AttachList.loaded = FALSE;
 
     if ( ACCESS_Frame( 2L ) )
-      return error;
+      goto Fail2;
 
     new_offset = GET_UShort();
 
        first have to scan the LookupFlag values to find out whether we
        must load it or not.  Here we only store the offset of the table. */
 
+    if ( ACCESS_Frame( 2L ) )
+      goto Fail3;
+
     new_offset = GET_UShort();
 
+    FORGET_Frame();
+
     if ( new_offset )
       gdef->MarkAttachClassDef_offset = new_offset + base_offset;
     else
 
     return TT_Err_Ok;
 
+  Fail3:
+    Free_LigCaretList( &gdef->LigCaretList, memory );
+    
   Fail2:
     Free_AttachList( &gdef->AttachList, memory );