diff --git a/src/stream_gribapi.c b/src/stream_gribapi.c index 63180fb8d603b4507db464ba12a5aa7905e85f63..f880196d55d19b2030c289ad328fdb69ef0d160b 100644 --- a/src/stream_gribapi.c +++ b/src/stream_gribapi.c @@ -723,7 +723,11 @@ gribapiAddRecord(stream_t *streamptr, int param, grib_handle *gh, size_t recsize struct addIfNewRes gridAdded = cdiVlistAddGridIfNew(vlistID, grid, 0); int gridID = gridAdded.Id; // clang-format off - if (!gridAdded.isNew) Free(grid); + if (!gridAdded.isNew) + { + grid_free(grid); + Free(grid); + } else if (grid->projtype == CDI_PROJ_RLL) gribapiDefProjRLL(gh, gridID); else if (grid->projtype == CDI_PROJ_LCC) gribapiDefProjLCC(gh, gridID); else if (grid->projtype == CDI_PROJ_STERE) gribapiDefProjSTERE(gh, gridID);