Skip to content
Snippets Groups Projects
Commit 724bdee0 authored by Uwe Schulzweida's avatar Uwe Schulzweida
Browse files

Fix stack-buffer-overflow

parent 02cc1d36
No related branches found
No related tags found
1 merge request!143M214003/develop
......@@ -73,32 +73,28 @@ read_file(const char path[], Varray2D<double> &vars, int nvars, int nts)
static void
write_file(const char path[], const double array[], int length)
{
int gridID, zaxisID, taxisID;
int vlistID, varID, streamID, tsID;
size_t nmiss;
printf("length %d\n", length);
double lons[] = { 0.0 };
double lats[] = { 0.0 };
double value;
gridID = gridCreate(GRID_LONLAT, 1);
auto gridID = gridCreate(GRID_LONLAT, 1);
gridDefXsize(gridID, 1);
gridDefYsize(gridID, 1);
gridDefXvals(gridID, lons);
gridDefYvals(gridID, lats);
zaxisID = zaxisCreate(ZAXIS_SURFACE, 1);
vlistID = vlistCreate();
auto zaxisID = zaxisCreate(ZAXIS_SURFACE, 1);
auto vlistID = vlistCreate();
varID = vlistDefVar(vlistID, gridID, zaxisID, TIME_VARYING);
auto varID = vlistDefVar(vlistID, gridID, zaxisID, TIME_VARYING);
cdiDefKeyString(vlistID, varID, CDI_KEY_NAME, "test_values");
vlistDefVarDatatype(vlistID, varID, CDI_DATATYPE_FLT64);
vlistDefVarMissval(vlistID, varID, MISSVAL);
taxisID = cdo_taxis_create(TAXIS_ABSOLUTE);
auto taxisID = cdo_taxis_create(TAXIS_ABSOLUTE);
vlistDefTaxis(vlistID, taxisID);
streamID = streamOpenWrite(path, CDI_FILETYPE_SRV);
auto streamID = streamOpenWrite(path, CDI_FILETYPE_SRV);
if (streamID < 0)
{
fprintf(stderr, "%s\n", cdiStringError(streamID));
......@@ -107,7 +103,7 @@ write_file(const char path[], const double array[], int length)
streamDefVlist(streamID, vlistID);
for (tsID = 0; tsID < length; ++tsID)
for (int tsID = 0; tsID < length; ++tsID)
{
int vdate = (tsID < 6) ? (20060625 + tsID) : (20060701 + tsID - 6);
int vtime = 235900;
......@@ -117,8 +113,8 @@ write_file(const char path[], const double array[], int length)
taxisDefVdatetime(taxisID, vDateTime);
streamDefTimestep(streamID, tsID);
value = array[tsID];
nmiss = dbl_is_equal(value, MISSVAL) ? 1 : 0;
auto value = array[tsID];
size_t nmiss = dbl_is_equal(value, MISSVAL) ? 1 : 0;
streamWriteVar(streamID, varID, &value, nmiss);
}
......@@ -299,7 +295,7 @@ testEcaGsl()
Varray2D<double> vars(nvars, Varray<double>(nts));
write_file("in1.srv", array1, 14);
write_file("in2.srv", array2, 2);
write_file("in2.srv", array2, 1);
submit_cdo_command("eca_gsl in1.srv in2.srv out.srv");
read_file("out.srv", vars, nvars, nts);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment