Index: /branches/eam_branches/ipp-20150616/Ohana/src/dvomerge/src/dvoverify.c
===================================================================
--- /branches/eam_branches/ipp-20150616/Ohana/src/dvomerge/src/dvoverify.c	(revision 38528)
+++ /branches/eam_branches/ipp-20150616/Ohana/src/dvomerge/src/dvoverify.c	(revision 38529)
@@ -24,5 +24,5 @@
 
     // check the photcode table
-    sprintf (filename, "%s/Photcodes.dat", CATDIR);
+    myAssert (snprintf (filename, DVO_MAX_PATH, "%s/Photcodes.dat", CATDIR) < DVO_MAX_PATH, "overflow");
     if (!VerifyTableFile (filename)) {
       Nbad ++;
@@ -34,7 +34,8 @@
       Nbad ++;
     }
+    free (skyfile);
 
     // check the image table
-    sprintf (filename, "%s/Images.dat", CATDIR);
+    myAssert (snprintf (filename, DVO_MAX_PATH, "%s/Images.dat", CATDIR) < DVO_MAX_PATH, "overflow");
     if (!VerifyTableFile (filename)) {
       Nbad ++;
@@ -71,4 +72,12 @@
     fprintf (stderr, "NOTE: %d files are not sorted\n", NNotSorted);
   }
+
+  FreeImageIDs ();
+  FreeFailures ();
+  SkyTableFree (sky);
+  SkyListFree (skylist);
+
+  ohana_memcheck (TRUE);
+  ohana_memdump (TRUE);
   exit (0);
 }
Index: /branches/eam_branches/ipp-20150616/Ohana/src/dvomerge/src/dvoverify_args.c
===================================================================
--- /branches/eam_branches/ipp-20150616/Ohana/src/dvomerge/src/dvoverify_args.c	(revision 38528)
+++ /branches/eam_branches/ipp-20150616/Ohana/src/dvomerge/src/dvoverify_args.c	(revision 38529)
@@ -45,5 +45,12 @@
     }
 
+    CHECK_IMAGE_ID = FALSE;
+
     int isGood = dvoverify_single (filename);
+    free (filename);
+
+    ohana_memcheck (TRUE);
+    ohana_memdump (TRUE);
+
     if (!isGood) exit (1);
     exit (0);
Index: /branches/eam_branches/ipp-20150616/Ohana/src/dvomerge/src/dvoverify_catalogs.c
===================================================================
--- /branches/eam_branches/ipp-20150616/Ohana/src/dvomerge/src/dvoverify_catalogs.c	(revision 38528)
+++ /branches/eam_branches/ipp-20150616/Ohana/src/dvomerge/src/dvoverify_catalogs.c	(revision 38529)
@@ -27,5 +27,5 @@
     if (!HostTableTestHost(skylist[0].regions[i], HOST_ID)) continue;
 
-    sprintf (filename, "%s/%s.cpt", mycatdir, skylist[0].regions[i][0].name);
+    myAssert (snprintf (filename, DVO_MAX_PATH, "%s/%s.cpt", mycatdir, skylist[0].regions[i][0].name) < DVO_MAX_PATH, "overflow");
     if (!VerifyTableFile (filename)) {
       Nbad ++;
@@ -34,5 +34,5 @@
     }
 
-    sprintf (filename, "%s/%s.cps", mycatdir, skylist[0].regions[i][0].name);
+    myAssert (snprintf (filename, DVO_MAX_PATH, "%s/%s.cps", mycatdir, skylist[0].regions[i][0].name) < DVO_MAX_PATH, "overflow");
     if (!VerifyTableFile (filename)) {
       Nbad ++;
@@ -40,5 +40,5 @@
     }
 
-    sprintf (filename, "%s/%s.cpm", mycatdir, skylist[0].regions[i][0].name);
+    myAssert (snprintf (filename, DVO_MAX_PATH, "%s/%s.cpm", mycatdir, skylist[0].regions[i][0].name) < DVO_MAX_PATH, "overflow");
     if (!VerifyTableFile (filename)) {
       Nbad ++;
@@ -47,5 +47,5 @@
     }
 
-    sprintf (filename, "%s/%s.cpx", mycatdir, skylist[0].regions[i][0].name);
+    myAssert (snprintf (filename, DVO_MAX_PATH, "%s/%s.cpx", mycatdir, skylist[0].regions[i][0].name) < DVO_MAX_PATH, "overflow");
     if (!VerifyTableFile (filename)) {
       Nbad ++;
@@ -54,5 +54,5 @@
     }
 
-    sprintf (filename, "%s/%s.cpy", mycatdir, skylist[0].regions[i][0].name);
+    myAssert (snprintf (filename, DVO_MAX_PATH, "%s/%s.cpy", mycatdir, skylist[0].regions[i][0].name) < DVO_MAX_PATH, "overflow");
     if (!VerifyTableFile (filename)) {
       Nbad ++;
@@ -61,5 +61,5 @@
     }
 
-    sprintf (filename, "%s/%s.cpt", mycatdir, skylist[0].regions[i][0].name);
+    myAssert (snprintf (filename, DVO_MAX_PATH, "%s/%s.cpt", mycatdir, skylist[0].regions[i][0].name) < DVO_MAX_PATH, "overflow");
     if (!skipIndexCheck) {
       if (!CheckCatalogIndexes(filename, skylist[0].regions[i])){
Index: /branches/eam_branches/ipp-20150616/Ohana/src/dvomerge/src/dvoverify_utils.c
===================================================================
--- /branches/eam_branches/ipp-20150616/Ohana/src/dvomerge/src/dvoverify_utils.c	(revision 38528)
+++ /branches/eam_branches/ipp-20150616/Ohana/src/dvomerge/src/dvoverify_utils.c	(revision 38529)
@@ -5,6 +5,16 @@
 static char **failures = NULL;
 
-void InitFailures () {
-  ALLOCATE (failures, char *, NFAILURES);
+void InitFailures (void) {
+  ALLOCATE_ZERO (failures, char *, NFAILURES);
+}
+
+void FreeFailures (void) {
+  int i;
+
+  if (!failures) return;
+  for (i = 0; i < NFAILURES; i++) {
+    FREE (failures[i]);
+  }
+  FREE (failures);
 }
 
@@ -128,5 +138,6 @@
 	fprintf (stderr, "unable to read header for %s, extension %d (or file has excess bytes)\n", filename, Next);
       }
-      fclose(file);
+      fclose (file);
+      gfits_free_header (&header);
       return (FALSE);
     }
@@ -175,5 +186,5 @@
 
   // set the parameters which guide catalog open/load/create
-    dvo_catalog_init (&catalog, TRUE);
+  dvo_catalog_init (&catalog, TRUE);
   catalog.filename  = filename;
   catalog.catflags  = DVO_LOAD_AVERAGE | DVO_LOAD_MEASURE | DVO_LOAD_LENSING | DVO_LOAD_LENSOBJ;
@@ -183,4 +194,5 @@
   if (!dvo_catalog_open (&catalog, region, VERBOSE, "r")) {
     fprintf (stderr, "ERROR: failure to open catalog file %s\n", catalog.filename);
+    dvo_catalog_free (&catalog);
     return FALSE;
   }
@@ -463,5 +475,5 @@
 
   char ImageCat[DVO_MAX_PATH];
-  snprintf (ImageCat, DVO_MAX_PATH, "%s/Images.dat", catdir);
+  myAssert (snprintf (ImageCat, DVO_MAX_PATH, "%s/Images.dat", catdir) < DVO_MAX_PATH, "overflow");
 
   // load the iage database table
@@ -506,11 +518,15 @@
     IDlist[id] = i;
   }
-
-  // free image table here?
+  
   // (in the future, I'll have to do the image table read in segments
   // it is just getting to be too large...)
   dvo_image_unlock (&inDB); // unlock input
+  gfits_db_free (&inDB);
 
   return TRUE;
+}
+
+void FreeImageIDs (void) {
+  FREE (IDlist);
 }
 
