From 6e0389da46b27d6391caebcab490f3505d44662d Mon Sep 17 00:00:00 2001 From: Paul Vogel <48995417+pfvogel@users.noreply.github.com> Date: Tue, 3 Dec 2024 05:58:50 -0600 Subject: [PATCH] fix(draw_sw_fill): add NULL checks on grad (#7355) --- src/draw/sw/lv_draw_sw_fill.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/draw/sw/lv_draw_sw_fill.c b/src/draw/sw/lv_draw_sw_fill.c index 2ca0dbf67..848fcf073 100644 --- a/src/draw/sw/lv_draw_sw_fill.c +++ b/src/draw/sw/lv_draw_sw_fill.c @@ -127,6 +127,7 @@ void lv_draw_sw_fill(lv_draw_unit_t * draw_unit, lv_draw_fill_dsc_t * dsc, const /*Prepare complex gradient*/ if(grad_dir >= LV_GRAD_DIR_LINEAR) { + LV_ASSERT_NULL(grad); switch(grad_dir) { case LV_GRAD_DIR_LINEAR: lv_gradient_linear_setup(&dsc->grad, coords); @@ -169,6 +170,7 @@ void lv_draw_sw_fill(lv_draw_unit_t * draw_unit, lv_draw_fill_dsc_t * dsc, const switch(grad_dir) { case LV_GRAD_DIR_VER: + LV_ASSERT_NULL(grad); blend_dsc.color = grad->color_map[top_y - bg_coords.y1]; blend_dsc.opa = grad->opa_map[top_y - bg_coords.y1]; break; @@ -210,6 +212,7 @@ void lv_draw_sw_fill(lv_draw_unit_t * draw_unit, lv_draw_fill_dsc_t * dsc, const switch(grad_dir) { case LV_GRAD_DIR_VER: + LV_ASSERT_NULL(grad); blend_dsc.color = grad->color_map[bottom_y - bg_coords.y1]; blend_dsc.opa = grad->opa_map[bottom_y - bg_coords.y1]; break; @@ -277,6 +280,7 @@ void lv_draw_sw_fill(lv_draw_unit_t * draw_unit, lv_draw_fill_dsc_t * dsc, const case LV_GRAD_DIR_CONICAL: blend_dsc.mask_res = transp ? LV_DRAW_SW_MASK_RES_CHANGED : LV_DRAW_SW_MASK_RES_FULL_COVER; blend_dsc.mask_buf = grad_opa_map; + break; default: break; } @@ -289,6 +293,7 @@ void lv_draw_sw_fill(lv_draw_unit_t * draw_unit, lv_draw_fill_dsc_t * dsc, const switch(grad_dir) { case LV_GRAD_DIR_VER: + LV_ASSERT_NULL(grad); blend_dsc.color = grad->color_map[h - bg_coords.y1]; if(opa >= LV_OPA_MAX) blend_dsc.opa = grad->opa_map[h - bg_coords.y1]; else blend_dsc.opa = LV_OPA_MIX2(grad->opa_map[h - bg_coords.y1], opa);