Ge van Geldorp : user32/tests: Prevent buffer overflow.
Alexandre Julliard
julliard at winehq.org
Wed Jan 21 06:39:23 CST 2009
Module: wine
Branch: master
Commit: 33a6e66befaedfd93ee8e96d5a716e3fdd4d14a3
URL: http://source.winehq.org/git/wine.git/?a=commit;h=33a6e66befaedfd93ee8e96d5a716e3fdd4d14a3
Author: Ge van Geldorp <ge at gse.nl>
Date: Tue Jan 20 15:07:15 2009 +0100
user32/tests: Prevent buffer overflow.
---
dlls/user32/tests/input.c | 26 +++++++++++++++++---------
1 files changed, 17 insertions(+), 9 deletions(-)
diff --git a/dlls/user32/tests/input.c b/dlls/user32/tests/input.c
index 4a82200..cb03e6e 100644
--- a/dlls/user32/tests/input.c
+++ b/dlls/user32/tests/input.c
@@ -63,7 +63,7 @@ static long timetag = 0x10000000;
static UINT (WINAPI *pSendInput) (UINT, INPUT*, size_t);
static int (WINAPI *pGetMouseMovePointsEx) (UINT, LPMOUSEMOVEPOINT, LPMOUSEMOVEPOINT, int, DWORD);
-#define MAXKEYEVENTS 6
+#define MAXKEYEVENTS 10
#define MAXKEYMESSAGES MAXKEYEVENTS /* assuming a key event generates one
and only one message */
@@ -799,10 +799,14 @@ static LRESULT CALLBACK WndProc2(HWND hWnd, UINT Msg, WPARAM wParam,
Msg != WM_GETICON &&
Msg != WM_DEVICECHANGE)
{
- sent_messages[sent_messages_cnt].message = Msg;
- sent_messages[sent_messages_cnt].flags = 0;
- sent_messages[sent_messages_cnt].wParam = wParam;
- sent_messages[sent_messages_cnt++].lParam = HIWORD(lParam) & (KF_UP|KF_EXTENDED);
+ ok(sent_messages_cnt < MAXKEYMESSAGES, "Too many messages\n");
+ if (sent_messages_cnt < MAXKEYMESSAGES)
+ {
+ sent_messages[sent_messages_cnt].message = Msg;
+ sent_messages[sent_messages_cnt].flags = 0;
+ sent_messages[sent_messages_cnt].wParam = wParam;
+ sent_messages[sent_messages_cnt++].lParam = HIWORD(lParam) & (KF_UP|KF_EXTENDED);
+ }
}
return DefWindowProc(hWnd, Msg, wParam, lParam);
}
@@ -813,10 +817,14 @@ static LRESULT CALLBACK hook_proc(int code, WPARAM wparam, LPARAM lparam)
if (code == HC_ACTION)
{
- sent_messages[sent_messages_cnt].message = wparam;
- sent_messages[sent_messages_cnt].flags = hook;
- sent_messages[sent_messages_cnt].wParam = hook_info->vkCode;
- sent_messages[sent_messages_cnt++].lParam = hook_info->flags & (LLKHF_UP|LLKHF_EXTENDED);
+ ok(sent_messages_cnt < MAXKEYMESSAGES, "Too many messages\n");
+ if (sent_messages_cnt < MAXKEYMESSAGES)
+ {
+ sent_messages[sent_messages_cnt].message = wparam;
+ sent_messages[sent_messages_cnt].flags = hook;
+ sent_messages[sent_messages_cnt].wParam = hook_info->vkCode;
+ sent_messages[sent_messages_cnt++].lParam = hook_info->flags & (LLKHF_UP|LLKHF_EXTENDED);
+ }
if(0) /* For some reason not stable on Wine */
{
More information about the wine-cvs
mailing list