jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3f73d205023a63e8cdb5762db5755363d20b8a3d
commit 3f73d205023a63e8cdb5762db5755363d20b8a3d Author: Jean-Philippe Andre <[email protected]> Date: Mon Oct 27 21:37:39 2014 +0900 Evas filters: Prevent division by 0 While it really shouldn't happen, let's just add a quick if() and make Coverity shut up. Fixes: - CID 1191912 - CID 1191911 - CID 1191910 - CID 1191909 --- src/lib/evas/filters/blur/blur_gaussian_alpha_.c | 9 +++++++-- src/lib/evas/filters/blur/blur_gaussian_rgba_.c | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/lib/evas/filters/blur/blur_gaussian_alpha_.c b/src/lib/evas/filters/blur/blur_gaussian_alpha_.c index 21b6b7d..fad14e2 100644 --- a/src/lib/evas/filters/blur/blur_gaussian_alpha_.c +++ b/src/lib/evas/filters/blur/blur_gaussian_alpha_.c @@ -41,7 +41,7 @@ FUNCTION_NAME(const DATA8* restrict srcdata, DATA8* restrict dstdata, acc += (*s) * weights[j + radius - k]; divider += weights[j + radius - k]; } - //if (!divider) abort(); + if (!divider) goto error; *dst = acc / divider; } @@ -66,13 +66,18 @@ FUNCTION_NAME(const DATA8* restrict srcdata, DATA8* restrict dstdata, acc += (*s) * weights[j]; divider += weights[j]; } - //if (!divider) abort(); + if (!divider) goto error; *dst = acc / divider; } dstdata += loopstep; srcdata += loopstep; } + + return; + +error: + CRI("Avoided division by 0."); } #undef FUNCTION_NAME diff --git a/src/lib/evas/filters/blur/blur_gaussian_rgba_.c b/src/lib/evas/filters/blur/blur_gaussian_rgba_.c index 4492e6b..fdbf3da 100644 --- a/src/lib/evas/filters/blur/blur_gaussian_rgba_.c +++ b/src/lib/evas/filters/blur/blur_gaussian_rgba_.c @@ -43,7 +43,7 @@ FUNCTION_NAME(const DATA32* restrict srcdata, DATA32* restrict dstdata, acc[BLUE] += B_VAL(s) * weights[weightidx]; divider += weights[weightidx]; } - //if (!divider) abort(); + if (!divider) goto error; A_VAL(dst) = acc[ALPHA] / divider; R_VAL(dst) = acc[RED] / divider; G_VAL(dst) = acc[GREEN] / divider; @@ -82,7 +82,7 @@ FUNCTION_NAME(const DATA32* restrict srcdata, DATA32* restrict dstdata, acc[BLUE] += B_VAL(s) * weights[j]; divider += weights[j]; } - //if (!divider) abort(); + if (!divider) goto error; A_VAL(dst) = acc[ALPHA] / divider; R_VAL(dst) = acc[RED] / divider; G_VAL(dst) = acc[GREEN] / divider; @@ -92,6 +92,11 @@ FUNCTION_NAME(const DATA32* restrict srcdata, DATA32* restrict dstdata, dstdata += loopstep; srcdata += loopstep; } + + return; + +error: + CRI("Avoided division by 0."); } #undef FUNCTION_NAME --
