From 4f0816b47e8fec4ede7bfc0c4b4817cb67489f7a Mon Sep 17 00:00:00 2001 From: Robert Longson Date: Fri, 16 Feb 2024 12:08:15 +0000 Subject: [PATCH] BATIK-1102 - avoid dividing by zero when processing particular feTurbulence seed values --- .../batik/ext/awt/image/rendered/TurbulencePatternRed.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/batik-awt-util/src/main/java/org/apache/batik/ext/awt/image/rendered/TurbulencePatternRed.java b/batik-awt-util/src/main/java/org/apache/batik/ext/awt/image/rendered/TurbulencePatternRed.java index 9096ec6a60..7c7081e009 100644 --- a/batik-awt-util/src/main/java/org/apache/batik/ext/awt/image/rendered/TurbulencePatternRed.java +++ b/batik-awt-util/src/main/java/org/apache/batik/ext/awt/image/rendered/TurbulencePatternRed.java @@ -263,8 +263,10 @@ private void initLattice(int seed) { for(k = 0; k < 4; k++){ for(i = 0; i < BSize; i++){ - u = (((seed = random(seed)) % (BSize + BSize)) - BSize); - v = (((seed = random(seed)) % (BSize + BSize)) - BSize); + do{ + u = (((seed = random(seed)) % (BSize + BSize)) - BSize); + v = (((seed = random(seed)) % (BSize + BSize)) - BSize); + }while(u == 0 && v == 0); s = 1/Math.sqrt(u*u + v*v); gradient[i*8 + k*2 ] = u*s;