]> git.eshelyaron.com Git - emacs.git/commitdiff
Don't dereference NULL upon failed malloc and realloc.
authorJim Meyering <jim@meyering.net>
Tue, 23 Jun 2009 06:49:20 +0000 (06:49 +0000)
committerJim Meyering <jim@meyering.net>
Tue, 23 Jun 2009 06:49:20 +0000 (06:49 +0000)
* src/ftfont.c (setup_otf_gstring, ftfont_shape_by_flt): Use xmalloc
and xrealloc (not malloc and realloc), so subsequent heap pointer
dereferences are guaranteed to be valid.

src/ChangeLog
src/ftfont.c

index a0f2650445a0a2682c9c9285d88c7a9f124d9bdf..9e1830e4d4a8da88f9625abd1103d6767d7bc243 100644 (file)
@@ -1,3 +1,10 @@
+2009-06-23  Jim Meyering  <meyering@redhat.com>
+
+       Don't dereference NULL upon failed malloc and realloc
+       * src/ftfont.c (setup_otf_gstring, ftfont_shape_by_flt): Use xmalloc
+       and xrealloc (not malloc and realloc), so subsequent heap pointer
+       dereferences are guaranteed to be valid.
+
 2009-06-23  Kenichi Handa  <handa@m17n.org>
 
        * emacs.c (main): Call init_font ().
index 695579a05f81d9dead8273a1b8f9b3bf660d49db..70c1797dce06cd50f4d0c3edae968c6ba82e7e53 100644 (file)
@@ -1700,13 +1700,13 @@ setup_otf_gstring (int size)
 {
   if (otf_gstring.size == 0)
     {
-      otf_gstring.glyphs = (OTF_Glyph *) malloc (sizeof (OTF_Glyph) * size);
+      otf_gstring.glyphs = (OTF_Glyph *) xmalloc (sizeof (OTF_Glyph) * size);
       otf_gstring.size = size;
     }
   else if (otf_gstring.size < size)
     {
-      otf_gstring.glyphs = (OTF_Glyph *) realloc (otf_gstring.glyphs,
-                                                 sizeof (OTF_Glyph) * size);
+      otf_gstring.glyphs = xrealloc (otf_gstring.glyphs,
+                                    sizeof (OTF_Glyph) * size);
       otf_gstring.size = size;
     }
   otf_gstring.used = size;
@@ -2037,13 +2037,13 @@ ftfont_shape_by_flt (lgstring, font, ft_face, otf)
     {
       gstring.allocated = len * 2;
       gstring.glyph_size = sizeof (MFLTGlyph);
-      gstring.glyphs = malloc (sizeof (MFLTGlyph) * gstring.allocated);
+      gstring.glyphs = xmalloc (sizeof (MFLTGlyph) * gstring.allocated);
     }
   else if (gstring.allocated < len * 2)
     {
       gstring.allocated = len * 2;
-      gstring.glyphs = realloc (gstring.glyphs,
-                               sizeof (MFLTGlyph) * gstring.allocated);
+      gstring.glyphs = xrealloc (gstring.glyphs,
+                                sizeof (MFLTGlyph) * gstring.allocated);
     }
   memset (gstring.glyphs, 0, sizeof (MFLTGlyph) * len);
   for (i = 0; i < len; i++)
@@ -2092,8 +2092,8 @@ ftfont_shape_by_flt (lgstring, font, ft_face, otf)
       if (result != -2)
        break;
       gstring.allocated += gstring.allocated;
-      gstring.glyphs = realloc (gstring.glyphs,
-                               sizeof (MFLTGlyph) * gstring.allocated);
+      gstring.glyphs = xrealloc (gstring.glyphs,
+                                sizeof (MFLTGlyph) * gstring.allocated);
     }
   if (gstring.used > LGSTRING_GLYPH_LEN (lgstring))
     return Qnil;