Index: /branches/eam_rel9_p0/psModules/src/config/pmConfig.c
===================================================================
--- /branches/eam_rel9_p0/psModules/src/config/pmConfig.c	(revision 5863)
+++ /branches/eam_rel9_p0/psModules/src/config/pmConfig.c	(revision 5864)
@@ -3,6 +3,6 @@
  *  @author PAP, IfA
  *
- *  @version $Revision: 1.5 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-12-12 20:11:06 $
+ *  @version $Revision: 1.5.4.1 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2005-12-31 04:34:18 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -65,9 +65,9 @@
 {
     PS_ASSERT_PTR_NON_NULL(site, false);
-    PS_ASSERT_PTR_NON_NULL(*site, false);
+    // PS_ASSERT_PTR_NON_NULL(*site, false);
     PS_ASSERT_PTR_NON_NULL(camera, false);
-    PS_ASSERT_PTR_NON_NULL(*camera, false);
+    // PS_ASSERT_PTR_NON_NULL(*camera, false);
     PS_ASSERT_PTR_NON_NULL(recipe, false);
-    PS_ASSERT_PTR_NON_NULL(*recipe, false);
+    // PS_ASSERT_PTR_NON_NULL(*recipe, false);
     PS_ASSERT_INT_POSITIVE(*argc, false);
     PS_ASSERT_PTR_NON_NULL(argv, false);
@@ -264,4 +264,7 @@
 }
 
+
+// XXX EAM : was trying headerItem when it was NULL
+// XXX EAM : should just free & return on first failure
 bool pmConfigValidateCamera(
     const psMetadata *camera,
@@ -284,5 +287,6 @@
         psMetadataItem *headerItem = psMetadataLookup((psMetadata*)header, ruleItem->name);
         if (! headerItem || headerItem->type != ruleItem->type) {
-            match = false;
+            psFree(ruleIter);
+            return false;
         }
 
@@ -294,5 +298,6 @@
             if (strncmp(ruleItem->data.V, headerItem->data.V,
                         strlen(ruleItem->data.V)) != 0) {
-                match = false;
+                psFree(ruleIter);
+                return false;
             }
             break;
@@ -302,5 +307,6 @@
                     ruleItem->data.S32, headerItem->data.S32);
             if (ruleItem->data.S32 != headerItem->data.S32) {
-                match = false;
+                psFree(ruleIter);
+                return false;
             }
             break;
@@ -309,5 +315,6 @@
                     ruleItem->data.F32, headerItem->data.F32);
             if (ruleItem->data.F32 != headerItem->data.F32) {
-                match = false;
+                psFree(ruleIter);
+                return false;
             }
             break;
@@ -316,5 +323,6 @@
                     ruleItem->data.F64, headerItem->data.F64);
             if (ruleItem->data.F64 != headerItem->data.F64) {
-                match = false;
+                psFree(ruleIter);
+                return false;
             }
             break;
@@ -326,5 +334,4 @@
 
     psFree(ruleIter);
-
     return match;
 }
@@ -420,4 +427,5 @@
 pmConfigDB(*site)
  
+XXX: this should allow the option of having NO database server, if chosen by config
 XXX: What should we use for the Database namespace in the call to psDBInit()?
 This is currently NULL.
