]> code.delx.au - gnu-emacs/commitdiff
Use xfree, not free, to avoid crash with --enable-checking=xmallocoverrun.
authorDmitry Antipov <dmantipov@yandex.ru>
Thu, 13 Oct 2011 14:55:46 +0000 (07:55 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 13 Oct 2011 14:55:46 +0000 (07:55 -0700)
lwlib/ChangeLog
lwlib/lwlib-Xaw.c
lwlib/lwlib-Xm.c
lwlib/lwlib-utils.c
lwlib/lwlib.c
lwlib/xlwmenu.c
src/ChangeLog
src/editfns.c

index 7e332a9fd5d9b851d4d2a7c2398a8bfa0a16ccd7..3b494865f0c86387a46a6ef5dea4358eec5a9b21 100644 (file)
@@ -1,3 +1,13 @@
+2011-10-13  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * lwlib-Xaw.c (openFont, xaw_destroy_instance): Replace free with
+       xfree to avoid crash when xmalloc overrun checking is enabled.
+       * lwlib-Xm.c (free_destroyed_instance, xm_update_one_value): Ditto.
+       * lwlib-utils.c (XtApplyToWidgets): Ditto.
+       * lwlib.c (safe_free_str, free_widget_value, free_widget_value_tree)
+       (free_widget_info, free_widget_instance, name_to_widget): Ditto.
+       * xlwmenu.c (openXftFont): Ditto.
+
 2011-06-27  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
        * Makefile.in (ALL_CFLAGS): Add -I../lib for generated header files
index 9c9a007bc15d768efc6af4c79ce10e1daad32f51..0eea0aba7b6e3d7e9b8a91ae8a8af13130b1ce55 100644 (file)
@@ -136,7 +136,7 @@ openFont (Widget widget, char *name)
     }
 
   fn = XftFontOpenName (XtDisplay (widget), screen, fname);
-  if (fname != name) free (fname);
+  if (fname != name) xfree (fname);
 
   return fn;
 }
@@ -384,7 +384,7 @@ xaw_destroy_instance (widget_instance *instance)
       if (instance->xft_data[0].xft_font)
         XftFontClose (XtDisplay (instance->widget),
                       instance->xft_data[0].xft_font);
-      free (instance->xft_data);
+      xfree (instance->xft_data);
     }
 #endif
   if (XtIsSubclass (instance->widget, dialogWidgetClass))
index 2b7677a02f5d92c47ba8e0eb81a3cb09f8c55319..058e2e779c7adf2167bc58a4a334529fda76e88b 100644 (file)
@@ -186,9 +186,9 @@ make_destroyed_instance (char* name,
 static void
 free_destroyed_instance (destroyed_instance* instance)
 {
-  free (instance->name);
-  free (instance->type);
-  free (instance);
+  xfree (instance->name);
+  xfree (instance->type);
+  xfree (instance);
 }
 
 \f/* motif utility functions */
@@ -928,13 +928,13 @@ xm_update_one_value (widget_instance* instance,
     }
   else if (class == xmTextWidgetClass)
     {
-      free (val->value);
+      xfree (val->value);
       val->value = XmTextGetString (widget);
       val->edited = True;
     }
   else if (class == xmTextFieldWidgetClass)
     {
-      free (val->value);
+      xfree (val->value);
       val->value = XmTextFieldGetString (widget);
       val->edited = True;
     }
@@ -959,7 +959,7 @@ xm_update_one_value (widget_instance* instance,
              XtVaGetValues (toggle, XmNset, &set, NULL);
              if (set)
                {
-                 free (val->value);
+                 xfree (val->value);
                  val->value = safe_strdup (XtName (toggle));
                }
            }
index 7a0dd1b264a178cc912231b2fac2e2168b595765..fe236a210f32fb3ccaf5cb3e1131739b5910a245 100644 (file)
@@ -80,7 +80,7 @@ XtApplyToWidgets (Widget w, XtApplyToWidgetsProc proc, XtPointer arg)
            XtApplyToWidgets (kids [i], proc, arg);
            proc (kids [i], arg);
          }
-      free (kids);
+      xfree (kids);
     }
 }
 
index 9d8ec3330d34c4409f49704166bee47bde552c04..7e3538aec046980cdc7ed311b2d20165bb505693 100644 (file)
@@ -138,7 +138,7 @@ my_strcasecmp (const char *s1, const char *s2)
 static void
 safe_free_str (char *s)
 {
-  free (s);
+  xfree (s);
 }
 
 static widget_value *widget_value_free_list = 0;
@@ -176,7 +176,7 @@ free_widget_value (widget_value *wv)
     {
       /* When the number of already allocated cells is too big,
         We free it.  */
-      free (wv);
+      xfree (wv);
       malloc_cpt--;
     }
   else
@@ -192,9 +192,9 @@ free_widget_value_tree (widget_value *wv)
   if (!wv)
     return;
 
-  free (wv->name);
-  free (wv->value);
-  free (wv->key);
+  xfree (wv->name);
+  xfree (wv->value);
+  xfree (wv->key);
 
   wv->name = wv->value = wv->key = (char *) 0xDEADBEEF;
 
@@ -281,7 +281,7 @@ free_widget_info (widget_info *info)
   safe_free_str (info->name);
   free_widget_value_tree (info->val);
   memset ((void*)info, 0xDEADBEEF, sizeof (widget_info));
-  free (info);
+  xfree (info);
 }
 
 static void
@@ -317,7 +317,7 @@ static void
 free_widget_instance (widget_instance *instance)
 {
   memset ((void*)instance, 0xDEADBEEF, sizeof (widget_instance));
-  free (instance);
+  xfree (instance);
 }
 
 static widget_info *
@@ -602,7 +602,7 @@ name_to_widget (widget_instance *instance, const char *name)
 
       widget = XtNameToWidget (instance->widget, real_name);
 
-      free (real_name);
+      xfree (real_name);
     }
   return widget;
 }
index e9ec604ae7f124524069bec70bbfebc8c33014e2..5ed33d5be05a15cf3e9533d7aabeb2e3f2af2e32 100644 (file)
@@ -1891,7 +1891,7 @@ openXftFont (XlwMenuWidget mw)
         }
     }
 
-  if (fname != mw->menu.fontName) free (fname);
+  if (fname != mw->menu.fontName) xfree (fname);
 
   return mw->menu.xft_font != 0;
 }
index e7cd83305ee62e1fbdf1e221e055da8462cb62d3..52fe8baa92e9c895771cfac57263e0c2ed54be83 100644 (file)
@@ -1,3 +1,8 @@
+2011-10-13  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * editfns.c (Fset_time_zone_rule): Replace free with xfree to
+       avoid crash when xmalloc overrun checking is enabled.
+
 2011-10-13  Eli Zaretskii  <eliz@gnu.org>
 
        * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
index 3dd58377ada1c5d4d3f1a28c326eb1f4cb1d51d3..5f89391ce2286e6a9cf369fd0cd4939971fdbbd4 100644 (file)
@@ -2079,7 +2079,7 @@ only the former.  */)
     }
 
   set_time_zone_rule (tzstring);
-  free (environbuf);
+  xfree (environbuf);
   environbuf = environ;
 
   return Qnil;