commit 9fdd9f40c70952020b1a8d9b3279528bc18c3ca1
parent 4d5ceb86864950381a92e12dc4bc3d048ac1ba33
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date: Tue, 3 Mar 2020 12:18:05 +0100
Check user callback return validity
Diffstat:
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/src/senc2d_scene.c b/src/senc2d_scene.c
@@ -167,7 +167,15 @@ senc2d_scene_create
goto error;
}
/* Get media */
- if(media) media(ns, med, ctx);
+ if(media) {
+ media(ns, med, ctx);
+ for(s = SENC2D_FRONT; s <= SENC2D_BACK; s += SENC2D_BACK - SENC2D_FRONT) {
+ if(med[s] == SENC2D_UNSPECIFIED_MEDIUM || med[s] <= MEDIUM_MAX__)
+ continue;
+ res = RES_BAD_ARG;
+ goto error;
+ }
+ }
seg_make_key(&seg_key, tmp.vertice_id);
p_seg = htable_seg_find(&unique_segments, &seg_key);
if(p_seg) {
@@ -180,17 +188,15 @@ senc2d_scene_create
/* New segment */
ASSERT(ns == htable_seg_size_get(&unique_segments));
OK(htable_seg_set(&unique_segments, &seg_key, &ns));
- for(s = SENC2D_FRONT; s <= SENC2D_BACK; s += (SENC2D_BACK - SENC2D_FRONT)) {
+ for(s = SENC2D_FRONT; s <= SENC2D_BACK; s += SENC2D_BACK - SENC2D_FRONT) {
struct side_range* media_use;
size_t m_idx = (med[s] == SENC2D_UNSPECIFIED_MEDIUM) ? 0 : med[s] + 1;
- ASSERT(m_idx <= MEDIUM_MAX__);
tmp.medium[s] = med[s];
if(m_idx >= scn->next_medium_idx) {
medium_id_t medium;
- ASSERT(m_idx <= MEDIUM_MAX__);
medium = (medium_id_t)m_idx;
scn->next_medium_idx = medium;
- darray_side_range_resize(&scn->media_use, 1 + m_idx);
+ OK(darray_side_range_resize(&scn->media_use, 1 + m_idx));
}
/* media_use 0 is for SENC2D_UNSPECIFIED_MEDIUM */
media_use = darray_side_range_data_get(&scn->media_use) + m_idx;