user32/edit: Avoid division by zero in EDIT_EM_LineScroll_internal.

Signed-off-by: Roman Pišl <rpisl@seznam.cz>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Roman Pišl 2020-04-20 12:20:15 +02:00 committed by Alexandre Julliard
parent d5e591d3cb
commit f04d8a270e
2 changed files with 10 additions and 2 deletions

View File

@ -1674,8 +1674,12 @@ static BOOL EDIT_EM_LineScroll_internal(EDITSTATE *es, INT dx, INT dy)
{
INT nyoff;
INT x_offset_in_pixels;
INT lines_per_page = (es->format_rect.bottom - es->format_rect.top) /
es->line_height;
INT lines_per_page;
if (!es->line_height || !es->char_width)
return TRUE;
lines_per_page = (es->format_rect.bottom - es->format_rect.top) / es->line_height;
if (es->style & ES_MULTILINE)
{

View File

@ -1765,6 +1765,8 @@ static LRESULT CALLBACK test_class_proc(HWND hwnd, UINT message, WPARAM wParam,
ok(r == 1, "Returned %ld, expected 1.\n", r);
r = SendMessageA(hwnd, WM_SIZE, 0, 0x00100010);
todo_wine ok(r == 1, "Returned %ld, expected 1.\n", r);
r = SendMessageA(hwnd, EM_LINESCROLL, 1, 1);
ok(r == 1, "Returned %ld, expected 1.\n", r);
return result;
@ -1775,6 +1777,8 @@ static LRESULT CALLBACK test_class_proc(HWND hwnd, UINT message, WPARAM wParam,
ok(r == 1, "Returned %ld, expected 1.\n", r);
r = SendMessageA(hwnd, WM_SIZE, 0, 0x00100010);
todo_wine ok(r == 1, "Returned %ld, expected 1.\n", r);
r = SendMessageA(hwnd, EM_LINESCROLL, 1, 1);
ok(r == 1, "Returned %ld, expected 1.\n", r);
break;
}