Index: trunk/Ohana/src/opihi/cmd.data/rd.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/rd.c	(revision 13107)
+++ trunk/Ohana/src/opihi/cmd.data/rd.c	(revision 13479)
@@ -59,5 +59,8 @@
 
   /* find matrix, free old data */
-  if ((buf = SelectBuffer (argv[1], ANYBUFFER, TRUE)) == NULL) return (FALSE);
+  if ((buf = SelectBuffer (argv[1], ANYBUFFER, TRUE)) == NULL) {
+      fclose (f);
+      return (FALSE);
+  }
   gfits_free_matrix (&buf[0].matrix);
   gfits_free_header (&buf[0].header);
@@ -79,4 +82,5 @@
       gprint (GP_ERR, "entry in %s not found\n", argv[2]);
       DeleteBuffer (buf);
+      fclose (f);
       return (FALSE);
     }
@@ -99,4 +103,5 @@
 	DeleteBuffer (buf);
 	free (CCDKeyword);
+	fclose (f);
 	return (FALSE);
       }
@@ -105,4 +110,5 @@
 	DeleteBuffer (buf);
 	free (CCDKeyword);
+	fclose (f);
 	return (FALSE);
       }
@@ -143,4 +149,5 @@
     buf[0].header.bzero = 0;
     buf[0].header.bscale = 1;
+    fclose (f);
     return (TRUE);
   }
@@ -152,4 +159,5 @@
     gprint (GP_ERR, "-plane is too large: %d total planes\n", Nplane);
     DeleteBuffer (buf);
+    fclose (f);
     return (FALSE);
   }
