IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Dec 30, 2005, 6:34:18 PM (21 years ago)
Author:
magnier
Message:

pmConfigRead crashed if site,camera,recipe were NULL
pmConfigValidateCamera kept attempting test after failed rule,
causing a crash

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_rel9_p0/psModules/src/config/pmConfig.c

    r5760 r5864  
    33 *  @author PAP, IfA
    44 *
    5  *  @version $Revision: 1.5 $ $Name: not supported by cvs2svn $
    6  *  @date $Date: 2005-12-12 20:11:06 $
     5 *  @version $Revision: 1.5.4.1 $ $Name: not supported by cvs2svn $
     6 *  @date $Date: 2005-12-31 04:34:18 $
    77 *
    88 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    6565{
    6666    PS_ASSERT_PTR_NON_NULL(site, false);
    67     PS_ASSERT_PTR_NON_NULL(*site, false);
     67    // PS_ASSERT_PTR_NON_NULL(*site, false);
    6868    PS_ASSERT_PTR_NON_NULL(camera, false);
    69     PS_ASSERT_PTR_NON_NULL(*camera, false);
     69    // PS_ASSERT_PTR_NON_NULL(*camera, false);
    7070    PS_ASSERT_PTR_NON_NULL(recipe, false);
    71     PS_ASSERT_PTR_NON_NULL(*recipe, false);
     71    // PS_ASSERT_PTR_NON_NULL(*recipe, false);
    7272    PS_ASSERT_INT_POSITIVE(*argc, false);
    7373    PS_ASSERT_PTR_NON_NULL(argv, false);
     
    264264}
    265265
     266
     267// XXX EAM : was trying headerItem when it was NULL
     268// XXX EAM : should just free & return on first failure
    266269bool pmConfigValidateCamera(
    267270    const psMetadata *camera,
     
    284287        psMetadataItem *headerItem = psMetadataLookup((psMetadata*)header, ruleItem->name);
    285288        if (! headerItem || headerItem->type != ruleItem->type) {
    286             match = false;
     289            psFree(ruleIter);
     290            return false;
    287291        }
    288292
     
    294298            if (strncmp(ruleItem->data.V, headerItem->data.V,
    295299                        strlen(ruleItem->data.V)) != 0) {
    296                 match = false;
     300                psFree(ruleIter);
     301                return false;
    297302            }
    298303            break;
     
    302307                    ruleItem->data.S32, headerItem->data.S32);
    303308            if (ruleItem->data.S32 != headerItem->data.S32) {
    304                 match = false;
     309                psFree(ruleIter);
     310                return false;
    305311            }
    306312            break;
     
    309315                    ruleItem->data.F32, headerItem->data.F32);
    310316            if (ruleItem->data.F32 != headerItem->data.F32) {
    311                 match = false;
     317                psFree(ruleIter);
     318                return false;
    312319            }
    313320            break;
     
    316323                    ruleItem->data.F64, headerItem->data.F64);
    317324            if (ruleItem->data.F64 != headerItem->data.F64) {
    318                 match = false;
     325                psFree(ruleIter);
     326                return false;
    319327            }
    320328            break;
     
    326334
    327335    psFree(ruleIter);
    328 
    329336    return match;
    330337}
     
    420427pmConfigDB(*site)
    421428 
     429XXX: this should allow the option of having NO database server, if chosen by config
    422430XXX: What should we use for the Database namespace in the call to psDBInit()?
    423431This is currently NULL.
Note: See TracChangeset for help on using the changeset viewer.