commit 002f17b47dd33646343a401df35c06f4ffd8f5aa
parent a564aebfc7a3da40f9f4c665f6740d6a88aa7cc8
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Fri, 28 Oct 2022 18:13:35 +0200
Fix invalid memory access
Spectral band array indexing was wrong when they were saved
Diffstat:
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/rnatm_properties.c b/src/rnatm_properties.c
@@ -782,6 +782,7 @@ setup_spectral_range(struct rnatm* atm, const struct rnatm_create_args* args)
{
size_t bands[2];
size_t iband, nbands;
+ size_t i;
res_T res = RES_OK;
ASSERT(atm && args);
ASSERT(args->spectral_range[0] <= args->spectral_range[1]);
@@ -804,15 +805,17 @@ setup_spectral_range(struct rnatm* atm, const struct rnatm_create_args* args)
}
/* Register the bands */
+ i = 0;
FOR_EACH(iband, bands[0], bands[1]+1) {
struct band* band = NULL;
struct sck_band sck_band;
SCK(get_band(atm->gas.ck, iband, &sck_band));
- band = darray_band_data_get(&atm->bands) + iband;
+ band = darray_band_data_get(&atm->bands) + i;
band->index = iband;
band->nquad_pts = sck_band.quad_pts_count;
+ ++i;
}
exit: