diff options
author | Lukasz Kostyra <l.kostyra@samsung.com> | 2021-11-02 11:21:19 +0100 |
---|---|---|
committer | Lukasz Kostyra <l.kostyra@samsung.com> | 2021-11-02 11:21:19 +0100 |
commit | a360b4231df4e7c357616e6488f5dd8a7b450a53 (patch) | |
tree | 09b41b61ba5090914e801aaa8b88d3966de4a33a | |
parent | 724d6455facd4ef696eef58efa982356e4671489 (diff) | |
download | emulator-yagl-a360b4231df4e7c357616e6488f5dd8a7b450a53.tar.gz emulator-yagl-a360b4231df4e7c357616e6488f5dd8a7b450a53.tar.bz2 emulator-yagl-a360b4231df4e7c357616e6488f5dd8a7b450a53.zip |
yagl_glsl_state: Prevent division by zero in yagl_glsl_state_pp_solve_binarysubmit/tizen/20211103.073433accepted/tizen/unified/20211103.121806
Resolves coverity issue CID 1241990
Change-Id: Ie60284afee63a108d9b2f10ffc07e9cc04363909
-rw-r--r-- | GLESv2/yagl_glsl_state.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/GLESv2/yagl_glsl_state.c b/GLESv2/yagl_glsl_state.c index 72149ab..a60785d 100644 --- a/GLESv2/yagl_glsl_state.c +++ b/GLESv2/yagl_glsl_state.c @@ -728,6 +728,7 @@ static int yagl_glsl_state_pp_solve_binary(struct yagl_glsl_state *state, { char *tmp = NULL; int a = 0, b = 0; + YAGL_LOG_FUNC_SET(yagl_glsl_state_pp_solve_binary); assert(result != NULL); @@ -753,6 +754,13 @@ static int yagl_glsl_state_pp_solve_binary(struct yagl_glsl_state *state, b = tok_b.value; } + if ((op == yagl_glsl_pp_op_mod) || (op == yagl_glsl_pp_op_div)) { + if (b == 0) { + YAGL_LOG_ERROR("Expression parse error - evaluated to division by zero"); + return 0; + } + } + switch (op) { case yagl_glsl_pp_op_or: *result = (a || b); break; case yagl_glsl_pp_op_and: *result = (a && b); break; |