From 16d7d9d27cf366ceb707deb665def933781a7af3 Mon Sep 17 00:00:00 2001 From: Stanislav Motylkov Date: Thu, 24 May 2018 00:31:20 +0300 Subject: [PATCH] [0.4.9] cherry-pick [MSPAINT] Fix divide by zero in drawZoomFrame CORE-14539 #resolve (cherry picked from commit 8c726ae0d23c9c02144b22a3706a100b3ae08c93) --- base/applications/mspaint/imgarea.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/base/applications/mspaint/imgarea.cpp b/base/applications/mspaint/imgarea.cpp index c9b1b3f49e3..433fc7b04aa 100644 --- a/base/applications/mspaint/imgarea.cpp +++ b/base/applications/mspaint/imgarea.cpp @@ -41,8 +41,14 @@ void CImgAreaWindow::drawZoomFrame(int mouseX, int mouseY) int x, y, w, h; scrollboxWindow.GetClientRect(&clientRectScrollbox); GetClientRect(&clientRectImageArea); - w = clientRectImageArea.right * clientRectScrollbox.right / (clientRectImageArea.right * 2); - h = clientRectImageArea.bottom * clientRectScrollbox.bottom / (clientRectImageArea.bottom * 2); + w = clientRectImageArea.right * 2; + h = clientRectImageArea.bottom * 2; + if (!w || !h) + { + return; + } + w = clientRectImageArea.right * clientRectScrollbox.right / w; + h = clientRectImageArea.bottom * clientRectScrollbox.bottom / h; x = max(0, min(clientRectImageArea.right - w, mouseX - w / 2)); y = max(0, min(clientRectImageArea.bottom - h, mouseY - h / 2));