Fix memory leak in sys-file-reader.c 20120822000503/pspp 20120823000504/pspp 20120824000503/pspp 20120825000503/pspp
authorJohn Darrington <john@darrington.wattle.id.au>
Wed, 22 Aug 2012 04:46:18 +0000 (06:46 +0200)
committerJohn Darrington <john@darrington.wattle.id.au>
Wed, 22 Aug 2012 04:46:18 +0000 (06:46 +0200)
src/data/sys-file-reader.c

index 2b6fa98ad775ef83117194a3bdb49e6f8cfd1052..4a7476ae04840dfadf31103bde26e0f3bf1edd7a 100644 (file)
@@ -547,7 +547,10 @@ sfm_open_reader (struct file_handle *fh, const char *volatile encoding,
 
   *dictp = dict;
   if (infop != info)
-    sfm_read_info_destroy (info);
+    {
+      sfm_read_info_destroy (info);
+      free (info);
+    }
 
   return casereader_create_sequential
     (NULL, r->proto,
@@ -555,7 +558,12 @@ sfm_open_reader (struct file_handle *fh, const char *volatile encoding,
                                        &sys_file_casereader_class, r);
 
 error:
-  sfm_read_info_destroy (info);
+  if (infop != info)
+    {
+      sfm_read_info_destroy (info);
+      free (info);
+    }
+
   close_reader (r);
   dict_destroy (dict);
   *dictp = NULL;