Fix memory leak in sys-file-reader.c
[pspp] / 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;