Fix double-free bug.
authorBen Pfaff <blp@gnu.org>
Wed, 18 May 2005 04:03:47 +0000 (04:03 +0000)
committerBen Pfaff <blp@gnu.org>
Wed, 18 May 2005 04:03:47 +0000 (04:03 +0000)
src/ChangeLog
src/data-list.c

index 3836660d9528052adf0e282098e7be9a8215e4b2..43f62729d4850f3c8a610f6691756eea4432eba5 100644 (file)
@@ -1,3 +1,10 @@
+Tue May 17 21:00:57 2005  Ben Pfaff  <blp@gnu.org>
+
+       * data-list.c: (data_list_trns_free) Don't free the argument
+       because cancel_transformations() will do that itself.
+       (data_list_source_destroy) Destroy the argument to
+       data_list_trns_free(), because it no longer does so itself.
+
 Tue May 17 18:29:35 2005  Ben Pfaff  <blp@gnu.org>
 
        * data-out.c: (format_and_round) Don't output leading `-' if value
index 66fab631ea23032a0e52d87d4724869236475edb..92eaab9a940d7eec4f9a1edfc03a97abb31b88cb 100644 (file)
@@ -1238,7 +1238,6 @@ data_list_trns_free (struct trns_header *pgm)
   free (dls->delims);
   destroy_dls_var_spec (dls->first);
   dfm_close_reader (dls->reader);
-  free (pgm);
 }
 
 /* Handle DATA LIST transformation T, parsing data into C. */
@@ -1313,6 +1312,7 @@ static void
 data_list_source_destroy (struct case_source *source)
 {
   data_list_trns_free (source->aux);
+  free (source->aux);
 }
 
 const struct case_source_class data_list_source_class =