@@ -331,6 +331,7 @@ void msWCSFreeParamsObj20(wcs20ParamsObjPtr params)
331
331
}
332
332
msFree (params -> axes );
333
333
CSLDestroy (params -> range_subset );
334
+ CSLDestroy (params -> format_options );
334
335
msFree (params );
335
336
}
336
337
@@ -960,14 +961,17 @@ static int msWCSParseRequest20_XMLGetCoverage(
960
961
961
962
if (NULL == (axis = msWCSFindAxis20 (params , axisName ))) {
962
963
if (NULL == (axis = msWCSCreateAxisObj20 ())) {
964
+ xmlFree (axisName );
963
965
return MS_FAILURE ;
964
966
}
965
967
axis -> name = msStrdup (axisName );
966
968
msWCSInsertAxisObj20 (params , axis );
967
969
}
970
+ xmlFree (axisName );
968
971
969
972
content = (char * )xmlNodeGetContent (child );
970
973
if (msStringParseInteger (content , & (axis -> size )) != MS_SUCCESS ) {
974
+ xmlFree (content );
971
975
msSetError (MS_WCSERR , "Value of element 'Size' could not "
972
976
"be parsed to a valid integer." ,
973
977
"msWCSParseRequest20_XMLGetCoverage()" );
@@ -988,11 +992,13 @@ static int msWCSParseRequest20_XMLGetCoverage(
988
992
989
993
if (NULL == (axis = msWCSFindAxis20 (params , axisName ))) {
990
994
if (NULL == (axis = msWCSCreateAxisObj20 ())) {
995
+ xmlFree (axisName );
991
996
return MS_FAILURE ;
992
997
}
993
998
axis -> name = msStrdup (axisName );
994
999
msWCSInsertAxisObj20 (params , axis );
995
1000
}
1001
+ xmlFree (axisName );
996
1002
997
1003
axis -> resolutionUOM = (char * ) xmlGetProp (child , BAD_CAST "uom" );
998
1004
@@ -4127,6 +4133,7 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage20()", p
4127
4133
4128
4134
msInitProjection (& imageProj );
4129
4135
if (msLoadProjectionString (& imageProj , cm .srs ) == -1 ) {
4136
+ msFreeProjection (& imageProj );
4130
4137
msWCSClearCoverageMetadata20 (& cm );
4131
4138
msSetError (MS_WCSERR ,
4132
4139
"Error loading CRS %s." ,
@@ -4139,12 +4146,14 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage20()", p
4139
4146
for (i = 0 ; i < params -> numaxes ; ++ i ) {
4140
4147
if (params -> axes [i ]-> subset != NULL ) {
4141
4148
if (params -> axes [i ]-> subset -> timeOrScalar == MS_WCS20_TIME_VALUE ) {
4149
+ msFreeProjection (& imageProj );
4142
4150
msWCSClearCoverageMetadata20 (& cm );
4143
4151
msSetError (MS_WCSERR , "Time values for subsets are not supported. " ,
4144
4152
"msWCSGetCoverage20()" );
4145
4153
return msWCSException (map , "InvalidSubsetting" , "subset" , params -> version );
4146
4154
}
4147
4155
if (params -> axes [i ]-> subset -> operation == MS_WCS20_SLICE ) {
4156
+ msFreeProjection (& imageProj );
4148
4157
msWCSClearCoverageMetadata20 (& cm );
4149
4158
msSetError (MS_WCSERR , "Subset operation 'slice' is not supported." ,
4150
4159
"msWCSGetCoverage20()" );
@@ -4157,11 +4166,13 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage20()", p
4157
4166
wcs20AxisObjPtr * axes ;
4158
4167
axes = msSmallMalloc (sizeof (wcs20AxisObjPtr ) * 2 );
4159
4168
if (msWCSValidateAndFindAxes20 (params , axes ) == MS_FAILURE ) {
4169
+ msFreeProjection (& imageProj );
4160
4170
msWCSClearCoverageMetadata20 (& cm );
4161
4171
msFree (axes );
4162
4172
return msWCSException (map , "InvalidAxisLabel" , "subset" , params -> version );
4163
4173
}
4164
4174
if (msWCSGetCoverage20_FinalizeParamsObj (params , axes ) == MS_FAILURE ) {
4175
+ msFreeProjection (& imageProj );
4165
4176
msWCSClearCoverageMetadata20 (& cm );
4166
4177
msFree (axes );
4167
4178
return msWCSException (map , "InvalidParameterValue" , "extent" , params -> version );
@@ -4213,6 +4224,8 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage20()", p
4213
4224
/* if the subsets have a crs given, project the image extent to it */
4214
4225
msInitProjection (& subsetProj );
4215
4226
if (msLoadProjectionString (& subsetProj , params -> subsetcrs ) != MS_SUCCESS ) {
4227
+ msFreeProjection (& subsetProj );
4228
+ msFreeProjection (& imageProj );
4216
4229
msWCSClearCoverageMetadata20 (& cm );
4217
4230
msSetError (MS_WCSERR ,
4218
4231
"Error loading CRS %s." ,
@@ -4339,6 +4352,9 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage20()", p
4339
4352
params -> resolutionX = (bbox .maxx - bbox .minx ) / params -> width ;
4340
4353
params -> resolutionY = (bbox .maxy - bbox .miny ) / params -> height ;
4341
4354
}
4355
+ else {
4356
+ msFreeProjection (& outputProj );
4357
+ }
4342
4358
}
4343
4359
4344
4360
/* set the bounding box as new map extent */
0 commit comments