Skip to content

Commit 63d5709

Browse files
committed
java: Make SVWindow more robust (fix three CID issues)
1386093 Division or modulo by zero 1386096 Division or modulo by float zero 1386101 Division or modulo by float zero A division by zero would have occurred if both sizeX and canvasSizeX or sizeY and canvasSizeY were 0. Catch also negative sizes which don't raise a division by zero exception but which are also invalid. Signed-off-by: Stefan Weil <[email protected]>
1 parent 64e2eff commit 63d5709

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

java/com/google/scrollview/ui/SVWindow.java

+14-4
Original file line numberDiff line numberDiff line change
@@ -204,10 +204,20 @@ public SVWindow(String name, int hash, int posX, int posY, int sizeX,
204204
super(name);
205205

206206
// Provide defaults for sizes.
207-
if (sizeX == 0) sizeX = canvasSizeX;
208-
if (sizeY == 0) sizeY = canvasSizeY;
209-
if (canvasSizeX == 0) canvasSizeX = sizeX;
210-
if (canvasSizeY == 0) canvasSizeY = sizeY;
207+
if (sizeX <= 0) sizeX = canvasSizeX;
208+
if (sizeY <= 0) sizeY = canvasSizeY;
209+
if (canvasSizeX <= 0) canvasSizeX = sizeX;
210+
if (canvasSizeY <= 0) canvasSizeY = sizeY;
211+
212+
// Avoid later division by zero.
213+
if (sizeX <= 0) {
214+
sizeX = 1;
215+
canvasSizeX = sizeX;
216+
}
217+
if (sizeY <= 0) {
218+
sizeY = 1;
219+
canvasSizeY = sizeY;
220+
}
211221

212222
// Initialize variables
213223
nrWindows++;

0 commit comments

Comments
 (0)