Fix minor bugs reported by the Coverity scan report.

2006-04-10  Behdad Esfahbod  <behdad@gnome.org>

        Fix minor bugs reported by the Coverity scan report.

        * pango/opentype/harfbuzz-gdef.c (HB_GDEF_Build_ClassDefinition):
        * pango/opentype/harfbuzz-gpos.c (HB_GPOS_Query_Scripts),
        (HB_GPOS_Query_Languages), (HB_GPOS_Query_Features): Do not access
        structs before we check them for nullity.

        * pango/pango-layout.c (pango_layout_index_to_line),
        (pango_layout_index_to_line_and_extents),
        (pango_layout_index_to_pos): Check for invalid iterators outside the
        loop, so we don't crash.

        * pango/pango-layout.c (pango_layout_line_x_to_index): Set
        char_trailing instead of trailing in one of too many paths.  Should
        have been a typo.

        * pango/pangox.c (get_font_metrics_from_subfonts): Check for nullity
        somewhere.
This commit is contained in:
Behdad Esfahbod 2006-04-10 10:33:17 +00:00 committed by Behdad Esfahbod
parent b31d6def96
commit 59aafd0780
2 changed files with 8 additions and 4 deletions

View File

@ -887,7 +887,7 @@ FT_Error HB_GDEF_Build_ClassDefinition( HB_GDEFHeader* gdef,
FT_UShort start, curr_glyph, curr_class;
FT_UShort n, m, count;
FT_Error error;
FT_Memory memory = gdef->memory;
FT_Memory memory;
HB_ClassDefinition* gcd;
HB_ClassRangeRecord* gcrr;
@ -897,6 +897,7 @@ FT_Error HB_GDEF_Build_ClassDefinition( HB_GDEFHeader* gdef,
if ( !gdef || !glyph_array || !class_array )
return FT_Err_Invalid_Argument;
memory = gdef->memory;
gcd = &gdef->GlyphClassDef;
/* We build a format 2 table */

View File

@ -5771,7 +5771,7 @@ FT_Error HB_GPOS_Query_Scripts( HB_GPOSHeader* gpos,
FT_ULong** script_tag_list )
{
FT_Error error;
FT_Memory memory = gpos->memory;
FT_Memory memory;
FT_UShort n;
FT_ULong* stl;
@ -5782,6 +5782,7 @@ FT_Error HB_GPOS_Query_Scripts( HB_GPOSHeader* gpos,
if ( !gpos || !script_tag_list )
return FT_Err_Invalid_Argument;
memory = gpos->memory;
sl = &gpos->ScriptList;
sr = sl->ScriptRecord;
@ -5804,7 +5805,7 @@ FT_Error HB_GPOS_Query_Languages( HB_GPOSHeader* gpos,
FT_ULong** language_tag_list )
{
FT_Error error;
FT_Memory memory = gpos->memory;
FT_Memory memory;
FT_UShort n;
FT_ULong* ltl;
@ -5817,6 +5818,7 @@ FT_Error HB_GPOS_Query_Languages( HB_GPOSHeader* gpos,
if ( !gpos || !language_tag_list )
return FT_Err_Invalid_Argument;
memory = gpos->memory;
sl = &gpos->ScriptList;
sr = sl->ScriptRecord;
@ -5850,7 +5852,7 @@ FT_Error HB_GPOS_Query_Features( HB_GPOSHeader* gpos,
{
FT_UShort n;
FT_Error error;
FT_Memory memory = gpos->memory;
FT_Memory memory;
FT_ULong* ftl;
HB_ScriptList* sl;
@ -5867,6 +5869,7 @@ FT_Error HB_GPOS_Query_Features( HB_GPOSHeader* gpos,
if ( !gpos || !feature_tag_list )
return FT_Err_Invalid_Argument;
memory = gpos->memory;
sl = &gpos->ScriptList;
sr = sl->ScriptRecord;