[OpenJDK 2D-Dev] RFR: JDK-8263362: Avoid division by 0 in java/awt/font/TextJustifier.java justify
Prasanta Sadhukhan
psadhukhan at openjdk.java.net
Wed Mar 10 12:44:10 UTC 2021
On Wed, 10 Mar 2021 12:31:31 GMT, Matthias Baesken <mbaesken at openjdk.org> wrote:
> In java/awt/font/TextJustifier.java justify-method there is a potential code path where divison by zero might happen , see also the Sonar finding
> https://sonarcloud.io/project/issues?id=shipilev_jdk&open=AXcqMwpm8sPJZZzONu1k&resolved=false&severities=CRITICAL&types=BUG
>
>
> boolean hitLimit = (weight == 0) || (!lastPass && ((delta < 0) == (delta < gslimit)));
> boolean absorbing = hitLimit && absorbweight > 0;
> // predivide delta by weight
> float weightedDelta = delta / weight; // not used if weight == 0
>
> In case of (weight == 0) the division should not be done because the value of weightedDelta is unused in this case anyway.
src/java.desktop/share/classes/java/awt/font/TextJustifier.java line 159:
> 157: // predivide delta by weight
> 158: float weightedDelta = 0;
> 159: if (weight != 0) { // not used if weight == 0
Can it ever be -ve? Maybe we can do weight > 0 check just as we do for absorbweight?
-------------
PR: https://git.openjdk.java.net/jdk/pull/2912
More information about the 2d-dev
mailing list