rendered paste bodyIndex: mapogcsos.c===================================================================--- mapogcsos.c (revision 7091)+++ mapogcsos.c (working copy)@@ -64,6 +64,7 @@ void msSOSParseRequest(cgiRequestObj *request, sosParamsObj *sosparams); void msSOSFreeParamsObj(sosParamsObj *sosparams);+sosParamsObj *msSOSCreateParamsObj(); /* ** msSOSException()@@ -2474,8 +2475,12 @@ int msSOSDispatch(mapObj *map, cgiRequestObj *req) { #ifdef USE_SOS_SVR int returnvalue = MS_DONE;- sosParamsObj *paramsObj = (sosParamsObj *)calloc(1, sizeof(sosParamsObj));+ sosParamsObj *paramsObj; + //sosParamsObj *paramsObj = (sosParamsObj *)calloc(1, sizeof(sosParamsObj));++ paramsObj = msSOSCreateParamsObj();+ msSOSParseRequest(req, paramsObj); /* SERVICE must be specified and be SOS */@@ -2752,6 +2757,30 @@ return; } +sosParamsObj *msSOSCreateParamsObj() {+ sosParamsObj *paramsObj = (sosParamsObj *)calloc(1, sizeof(sosParamsObj));++ if (paramsObj) {+ paramsObj->pszVersion=NULL;+ paramsObj->pszUpdateSequence=NULL;+ paramsObj->pszRequest=NULL;+ paramsObj->pszOutputFormat=NULL;+ paramsObj->pszSensorId=NULL;+ paramsObj->pszProcedure=NULL;+ paramsObj->pszOffering=NULL;+ paramsObj->pszObservedProperty=NULL;+ paramsObj->pszEventTime=NULL;+ paramsObj->pszResult=NULL;+ paramsObj->pszResponseFormat=NULL;+ paramsObj->pszResultModel=NULL;+ paramsObj->pszResponseMode=NULL;+ paramsObj->pszSrsName=NULL;+ paramsObj->pszFeatureOfInterest=NULL;+ }++ return paramsObj;+}+ void msSOSFreeParamsObj(sosParamsObj *sosparams) { if (sosparams) { if (sosparams->pszVersion)@@ -2770,7 +2799,7 @@ free(sosparams->pszOffering); if (sosparams->pszObservedProperty) free(sosparams->pszObservedProperty);- if (sosparams->pszEventTime);+ if (sosparams->pszEventTime) free(sosparams->pszEventTime); if (sosparams->pszResult) free(sosparams->pszResult);