libical r642 - branches/gnome-2-22 branches/gnome-2-22/scripts trunk trunk/scripts



Author: pohly
Date: Tue May  6 20:01:39 2008
New Revision: 642
URL: http://svn.gnome.org/viewvc/libical?rev=642&view=rev

Log:
avoid memory leak when overwriting string properties (#531197)


Modified:
   branches/gnome-2-22/ChangeLog
   branches/gnome-2-22/scripts/mkderivedparameters.pl
   trunk/ChangeLog
   trunk/scripts/mkderivedparameters.pl

Modified: branches/gnome-2-22/scripts/mkderivedparameters.pl
==============================================================================
--- branches/gnome-2-22/scripts/mkderivedparameters.pl	(original)
+++ branches/gnome-2-22/scripts/mkderivedparameters.pl	Tue May  6 20:01:39 2008
@@ -197,7 +197,7 @@
 
      $charorenum = "    icalerror_check_arg_rz( (param!=0), \"param\");\n    return param->string;";
     
-     $set_code = "((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);";
+     $set_code = "if (((struct icalparameter_impl*)param)->string) { free((void *)((struct icalparameter_impl*)param)->string); } ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);";
 
      $pointer_check = "icalerror_check_arg_rz( (v!=0),\"v\");"; 
      $pointer_check_v = "icalerror_check_arg_rv( (v!=0),\"v\");"; 

Modified: trunk/scripts/mkderivedparameters.pl
==============================================================================
--- trunk/scripts/mkderivedparameters.pl	(original)
+++ trunk/scripts/mkderivedparameters.pl	Tue May  6 20:01:39 2008
@@ -197,7 +197,7 @@
 
      $charorenum = "    icalerror_check_arg_rz( (param!=0), \"param\");\n    return param->string;";
     
-     $set_code = "((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);";
+     $set_code = "if (((struct icalparameter_impl*)param)->string) { free((void *)((struct icalparameter_impl*)param)->string); } ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);";
 
      $pointer_check = "icalerror_check_arg_rz( (v!=0),\"v\");"; 
      $pointer_check_v = "icalerror_check_arg_rv( (v!=0),\"v\");"; 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]