From 6356a441602611735466f2d2193451be4f30e98a Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Wed, 19 Feb 2003 22:04:03 +0000 Subject: [PATCH] Authors: Sander van Leeuwen , Dietrich Teickner - Fixed incorrect undo buffer size (previous code caused heap corruption when using backspace many times). - Always kill timer when left mouse button is released and in captured state. --- controls/edit.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/controls/edit.c b/controls/edit.c index 66b9874e98f..37f91062bce 100644 --- a/controls/edit.c +++ b/controls/edit.c @@ -1747,7 +1747,7 @@ static BOOL EDIT_MakeUndoFit(EDITSTATE *es, UINT size) alloc_size = ROUND_TO_GROW((size + 1) * sizeof(WCHAR)); if ((es->undo_text = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, es->undo_text, alloc_size))) { - es->undo_buffer_size = alloc_size/sizeof(WCHAR); + es->undo_buffer_size = alloc_size/sizeof(WCHAR) - 1; return TRUE; } else @@ -4216,9 +4216,9 @@ static LRESULT EDIT_WM_LButtonDown(EDITSTATE *es, DWORD keys, INT x, INT y) */ static LRESULT EDIT_WM_LButtonUp(EDITSTATE *es) { - if (es->bCaptureState && GetCapture() == es->hwndSelf) { + if (es->bCaptureState) { KillTimer(es->hwndSelf, 0); - ReleaseCapture(); + if (GetCapture() == es->hwndSelf) ReleaseCapture(); } es->bCaptureState = FALSE; return 0;