VYPR
Unrated severityNVD Advisory· Published May 11, 2009· Updated Apr 23, 2026

CVE-2009-1194

CVE-2009-1194

Description

Integer overflow in the pango_glyph_string_set_size function in pango/glyphstring.c in Pango before 1.24 allows context-dependent attackers to cause a denial of service (application crash) or possibly execute arbitrary code via a long glyph string that triggers a heap-based buffer overflow, as demonstrated by a long document.location value in Firefox.

Affected products

11
  • Pango/Pango11 versions
    cpe:2.3:a:pango:pango:*:*:*:*:*:*:*:*+ 10 more
    • cpe:2.3:a:pango:pango:*:*:*:*:*:*:*:*range: <=1.22
    • cpe:2.3:a:pango:pango:1.2:*:*:*:*:*:*:*
    • cpe:2.3:a:pango:pango:1.4:*:*:*:*:*:*:*
    • cpe:2.3:a:pango:pango:1.6:*:*:*:*:*:*:*
    • cpe:2.3:a:pango:pango:1.8:*:*:*:*:*:*:*
    • cpe:2.3:a:pango:pango:1.10:*:*:*:*:*:*:*
    • cpe:2.3:a:pango:pango:1.12:*:*:*:*:*:*:*
    • cpe:2.3:a:pango:pango:1.14:*:*:*:*:*:*:*
    • cpe:2.3:a:pango:pango:1.16:*:*:*:*:*:*:*
    • cpe:2.3:a:pango:pango:1.18:*:*:*:*:*:*:*
    • cpe:2.3:a:pango:pango:1.20:*:*:*:*:*:*:*

Patches

1
4de30e5500ea

[glyphstring] Handle overflow with very long glyphstrings

https://github.com/bratsche/pangoBehdad EsfahbodMar 2, 2009via osv
1 file changed · +20 6
  • pango/glyphstring.c+20 6 modified
    @@ -61,14 +61,28 @@ pango_glyph_string_set_size (PangoGlyphString *string, gint new_len)
       while (new_len > string->space)
         {
           if (string->space == 0)
    -	string->space = 1;
    +	{
    +	  string->space = 4;
    +	}
           else
    -	string->space *= 2;
    -
    -      if (string->space < 0)
     	{
    -	  g_warning ("glyph string length overflows maximum integer size, truncated");
    -	  new_len = string->space = G_MAXINT - 8;
    +	  const guint max_space =
    +	    MIN (G_MAXINT, G_MAXSIZE / MAX (sizeof(PangoGlyphInfo), sizeof(gint)));
    +
    +	  guint more_space = (guint)string->space * 2;
    +
    +	  if (more_space > max_space)
    +	    {
    +	      more_space = max_space;
    +
    +	      if ((guint)new_len > max_space)
    +		{
    +		  g_error ("%s: failed to allocate glyph string of length %i\n",
    +			   G_STRLOC, new_len);
    +		}
    +	    }
    +
    +	  string->space = more_space;
     	}
         }
     
    

Vulnerability mechanics

Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

31

News mentions

0

No linked articles in our index yet.