Index: /trunk/ippTools/src/dettool.c
===================================================================
--- /trunk/ippTools/src/dettool.c	(revision 7677)
+++ /trunk/ippTools/src/dettool.c	(revision 7678)
@@ -654,6 +654,9 @@
     if (!detProcessedImfileInsertObject(config->dbh, detRow)) {
         psError(PS_ERR_UNKNOWN, false, "database error");
+        psFree(detRow);
         return false; 
     }
+
+    psFree(detRow);
 
     return true;
@@ -988,4 +991,5 @@
 
     psArray *rawImfiles = searchRawImfiles(config, where);
+    psFree(where);
 
     bool valid_class_id = false;
@@ -1014,6 +1018,9 @@
     if (!detStackedImfileInsertObject(config->dbh, stackedImfile)) {
         psError(PS_ERR_UNKNOWN, false, "database error");
+        psFree(stackedImfile);
         return false; 
     }
+
+    psFree(stackedImfile);
 
     return true;
@@ -1072,4 +1079,5 @@
                 NULL, md
             );
+            psFree(md);
         }
 
@@ -1147,4 +1155,5 @@
             psArrayLength(valid_class_ids));
         psFree(valid_class_ids);
+        psFree(stackedImfiles);
         return false;
     }
@@ -1160,5 +1169,7 @@
             NULL, md
         );
-    }
+        psFree(md);
+    }
+    psFree(stackedImfiles);
 
     psString str = psMetadataConfigFormat(output); 
@@ -1239,8 +1250,10 @@
                     ((detInputExpRow *)inputExps->data[i])->exp_id)) {
                 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
+                psFree(inputExps);
                 psFree(where);
                 return NULL;
             }
         }
+        psFree(inputExps);
         rawImfiles = rawImfileSelectRowObjects(config->dbh, where, 0);
         // XXX this really should be sorted for uniqueness
@@ -1333,4 +1346,5 @@
     psArray *stackedImfiles = detStackedImfileSelectRowObjects(
                                 config->dbh, where, 0);
+    psFree(where);
 
     bool valid_class_id = false;
@@ -1361,6 +1375,9 @@
     if (!detNormalizedImfileInsertObject(config->dbh, masterImfile)) {
         psError(PS_ERR_UNKNOWN, false, "database error");
+        psFree(masterImfile);
         return false; 
     }
+
+    psFree(masterImfile);
 
     return true;
@@ -1431,5 +1448,7 @@
             NULL, md
         );
-    }
+        psFree(md);
+    }
+    psFree(normalizedImfiles);
 
     psString str = psMetadataConfigFormat(output); 
@@ -1509,4 +1528,5 @@
             NULL, md
         );
+        psFree(md);
     }
 
@@ -1668,4 +1688,5 @@
                 PS_META_DUPLICATE_OK, NULL, md
             );
+            psFree(md);
         }
 
@@ -1808,4 +1829,5 @@
                 PS_META_DUPLICATE_OK, NULL, md
             );
+            psFree(md);
         }
 
@@ -1889,4 +1911,5 @@
                 PS_META_DUPLICATE_OK, NULL, md
             );
+            psFree(md);
         }
 
@@ -1925,4 +1948,5 @@
                 PS_META_DUPLICATE_OK, NULL, md
             );
+            psFree(md);
         }
 
