Fix uninitialized variable use/warnings in
- RegisterClassExWOWW (found by MSVC runtime checks)
- IntDrawState (CID-514399)
- IntCallWindowProcA (CID-514389)
- IntCallWindowProcW (CID-414390)
- SendMessageA (CID-514392)
- SendMessageW (CID-514393)
- SendMessageTimeoutA (CID-514441)
- SendMessageCallbackA (CID-514442)
- SendNotifyMessageW (CID-514443)
- SendNotifyMessageA (CID-514444)
- User32CallWindowProcFromKernel (CID-514445)
- DesktopWndProcA (CID-716765)

svn path=/trunk/; revision=64822
This commit is contained in:
Timo Kreuzer 2014-10-19 13:17:49 +00:00
parent 74cb166477
commit 50e22a432f
3 changed files with 43 additions and 8 deletions

View file

@ -67,7 +67,7 @@ ClassNameToVersion(
ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION, ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION,
&SectionName, &SectionName,
&KeyedData ); &KeyedData );
if (NT_SUCCESS(Status) && KeyedData.ulDataFormatVersion == 1) if (NT_SUCCESS(Status) && KeyedData.ulDataFormatVersion == 1)
{ {
struct dll_redirect *dll = KeyedData.lpSectionBase; struct dll_redirect *dll = KeyedData.lpSectionBase;
@ -165,7 +165,7 @@ Real_VersionRegisterClass(
Error_Exit: Error_Exit:
if ( Ret || !hLibModule ) if ( Ret || !hLibModule )
{ {
if ( phLibModule ) *phLibModule = hLibModule; if ( phLibModule ) *phLibModule = hLibModule;
} }
else else
{ {
@ -173,7 +173,7 @@ Error_Exit:
FreeLibrary(hLibModule); FreeLibrary(hLibModule);
SetLastError(save_error); SetLastError(save_error);
} }
return Ret; return Ret;
} }
@ -269,7 +269,7 @@ VersionRegisterClass(
Error_Exit: Error_Exit:
if ( Ret || !hLibModule ) if ( Ret || !hLibModule )
{ {
if ( phLibModule ) *phLibModule = hLibModule; if ( phLibModule ) *phLibModule = hLibModule;
} }
else else
{ {
@ -1022,7 +1022,7 @@ GetClassNameA(
{ {
WCHAR tmpbuf[MAX_ATOM_LEN + 1]; WCHAR tmpbuf[MAX_ATOM_LEN + 1];
int len; int len;
if (nMaxCount <= 0) return 0; if (nMaxCount <= 0) return 0;
if (!GetClassNameW( hWnd, tmpbuf, sizeof(tmpbuf)/sizeof(WCHAR) )) return 0; if (!GetClassNameW( hWnd, tmpbuf, sizeof(tmpbuf)/sizeof(WCHAR) )) return 0;
RtlUnicodeToMultiByteN( lpClassName, nMaxCount - 1, (PULONG)&len, tmpbuf, strlenW(tmpbuf) * sizeof(WCHAR) ); RtlUnicodeToMultiByteN( lpClassName, nMaxCount - 1, (PULONG)&len, tmpbuf, strlenW(tmpbuf) * sizeof(WCHAR) );
@ -1256,7 +1256,7 @@ RealGetWindowClassA(
{ {
WCHAR tmpbuf[MAX_ATOM_LEN + 1]; WCHAR tmpbuf[MAX_ATOM_LEN + 1];
UINT len; UINT len;
if ((INT)cchType <= 0) return 0; if ((INT)cchType <= 0) return 0;
if (!RealGetWindowClassW( hwnd, tmpbuf, sizeof(tmpbuf)/sizeof(WCHAR) )) return 0; if (!RealGetWindowClassW( hwnd, tmpbuf, sizeof(tmpbuf)/sizeof(WCHAR) )) return 0;
RtlUnicodeToMultiByteN( pszType, cchType - 1, (PULONG)&len, tmpbuf, strlenW(tmpbuf) * sizeof(WCHAR) ); RtlUnicodeToMultiByteN( pszType, cchType - 1, (PULONG)&len, tmpbuf, strlenW(tmpbuf) * sizeof(WCHAR) );
@ -1472,6 +1472,7 @@ RegisterClassExWOWW(WNDCLASSEXW *lpwcx,
WndClass.hIconSm = CreateSmallIcon(WndClass.hIcon); WndClass.hIconSm = CreateSmallIcon(WndClass.hIcon);
} }
*/ */
RtlInitEmptyAnsiString(&AnsiMenuName, NULL, 0);
if (WndClass.lpszMenuName != NULL) if (WndClass.lpszMenuName != NULL)
{ {
if (!IS_INTRESOURCE(WndClass.lpszMenuName)) if (!IS_INTRESOURCE(WndClass.lpszMenuName))

View file

@ -1272,6 +1272,10 @@ IntDrawState(HDC hdc, HBRUSH hbr, DRAWSTATEPROC func, LPARAM lp, WPARAM wp,
case DST_COMPLEX: /* cx and cy must be set in this mode */ case DST_COMPLEX: /* cx and cy must be set in this mode */
return FALSE; return FALSE;
default:
ERR("Invalid opcode: %u\n", opcode);
return FALSE;
} }
if(!cx) if(!cx)
@ -1552,7 +1556,7 @@ FillRect(HDC hDC, CONST RECT *lprc, HBRUSH hbr)
/* Handle system colors */ /* Handle system colors */
if (hbr <= (HBRUSH)(COLOR_MENUBAR + 1)) if (hbr <= (HBRUSH)(COLOR_MENUBAR + 1))
hbr = GetSysColorBrush(PtrToUlong(hbr) - 1); hbr = GetSysColorBrush(PtrToUlong(hbr) - 1);
prevhbr = SelectObject(hDC, hbr); prevhbr = SelectObject(hDC, hbr);
if (prevhbr == NULL) if (prevhbr == NULL)
return (INT)FALSE; return (INT)FALSE;

View file

@ -1357,6 +1357,9 @@ DesktopWndProcA( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam )
AnsiMsg.message = message; AnsiMsg.message = message;
AnsiMsg.wParam = wParam; AnsiMsg.wParam = wParam;
AnsiMsg.lParam = lParam; AnsiMsg.lParam = lParam;
AnsiMsg.time = 0;
AnsiMsg.pt.x = 0;
AnsiMsg.pt.y = 0;
// Desktop is always Unicode so convert Ansi here. // Desktop is always Unicode so convert Ansi here.
if (!MsgiAnsiToUnicodeMessage(hwnd, &UcMsg, &AnsiMsg)) if (!MsgiAnsiToUnicodeMessage(hwnd, &UcMsg, &AnsiMsg))
@ -1501,7 +1504,10 @@ IntCallWindowProcW(BOOL IsAnsiProc,
UnicodeMsg.message = Msg; UnicodeMsg.message = Msg;
UnicodeMsg.wParam = wParam; UnicodeMsg.wParam = wParam;
UnicodeMsg.lParam = lParam; UnicodeMsg.lParam = lParam;
if (! MsgiUnicodeToAnsiMessage(hWnd, &AnsiMsg, &UnicodeMsg)) UnicodeMsg.time = 0;
UnicodeMsg.pt.x = 0;
UnicodeMsg.pt.y = 0;
if (! MsgiUnicodeToAnsiMessage(hWnd, &AnsiMsg, &UnicodeMsg))
{ {
goto Exit; goto Exit;
} }
@ -1699,6 +1705,9 @@ IntCallWindowProcA(BOOL IsAnsiProc,
AnsiMsg.message = Msg; AnsiMsg.message = Msg;
AnsiMsg.wParam = wParam; AnsiMsg.wParam = wParam;
AnsiMsg.lParam = lParam; AnsiMsg.lParam = lParam;
AnsiMsg.time = 0;
AnsiMsg.pt.x = 0;
AnsiMsg.pt.y = 0;
if (! MsgiAnsiToUnicodeMessage(hWnd, &UnicodeMsg, &AnsiMsg)) if (! MsgiAnsiToUnicodeMessage(hWnd, &UnicodeMsg, &AnsiMsg))
{ {
goto Exit; goto Exit;
@ -2428,6 +2437,9 @@ SendMessageW(HWND Wnd,
UMMsg.message = Msg; UMMsg.message = Msg;
UMMsg.wParam = wParam; UMMsg.wParam = wParam;
UMMsg.lParam = lParam; UMMsg.lParam = lParam;
UMMsg.time = 0;
UMMsg.pt.x = 0;
UMMsg.pt.y = 0;
if (! MsgiUMToKMMessage(&UMMsg, &KMMsg, FALSE)) if (! MsgiUMToKMMessage(&UMMsg, &KMMsg, FALSE))
{ {
@ -2492,6 +2504,9 @@ SendMessageA(HWND Wnd, UINT Msg, WPARAM wParam, LPARAM lParam)
AnsiMsg.message = Msg; AnsiMsg.message = Msg;
AnsiMsg.wParam = wParam; AnsiMsg.wParam = wParam;
AnsiMsg.lParam = lParam; AnsiMsg.lParam = lParam;
AnsiMsg.time = 0;
AnsiMsg.pt.x = 0;
AnsiMsg.pt.y = 0;
if (!MsgiAnsiToUnicodeMessage(Wnd, &UcMsg, &AnsiMsg)) if (!MsgiAnsiToUnicodeMessage(Wnd, &UcMsg, &AnsiMsg))
{ {
@ -2548,6 +2563,9 @@ SendMessageCallbackA(
AnsiMsg.message = Msg; AnsiMsg.message = Msg;
AnsiMsg.wParam = wParam; AnsiMsg.wParam = wParam;
AnsiMsg.lParam = lParam; AnsiMsg.lParam = lParam;
AnsiMsg.time = 0;
AnsiMsg.pt.x = 0;
AnsiMsg.pt.y = 0;
if (!MsgiAnsiToUnicodeMessage(hWnd, &UcMsg, &AnsiMsg)) if (!MsgiAnsiToUnicodeMessage(hWnd, &UcMsg, &AnsiMsg))
{ {
@ -2635,6 +2653,9 @@ SendMessageTimeoutA(
AnsiMsg.message = Msg; AnsiMsg.message = Msg;
AnsiMsg.wParam = wParam; AnsiMsg.wParam = wParam;
AnsiMsg.lParam = lParam; AnsiMsg.lParam = lParam;
AnsiMsg.time = 0;
AnsiMsg.pt.x = 0;
AnsiMsg.pt.y = 0;
if (! MsgiAnsiToUnicodeMessage(hWnd, &UcMsg, &AnsiMsg)) if (! MsgiAnsiToUnicodeMessage(hWnd, &UcMsg, &AnsiMsg))
{ {
@ -2728,6 +2749,9 @@ SendNotifyMessageA(
AnsiMsg.message = Msg; AnsiMsg.message = Msg;
AnsiMsg.wParam = wParam; AnsiMsg.wParam = wParam;
AnsiMsg.lParam = lParam; AnsiMsg.lParam = lParam;
AnsiMsg.time = 0;
AnsiMsg.pt.x = 0;
AnsiMsg.pt.y = 0;
if (! MsgiAnsiToUnicodeMessage(hWnd, &UcMsg, &AnsiMsg)) if (! MsgiAnsiToUnicodeMessage(hWnd, &UcMsg, &AnsiMsg))
{ {
return FALSE; return FALSE;
@ -2763,6 +2787,9 @@ SendNotifyMessageW(
UMMsg.message = Msg; UMMsg.message = Msg;
UMMsg.wParam = wParam; UMMsg.wParam = wParam;
UMMsg.lParam = lParam; UMMsg.lParam = lParam;
UMMsg.time = 0;
UMMsg.pt.x = 0;
UMMsg.pt.y = 0;
if (! MsgiUMToKMMessage(&UMMsg, &KMMsg, TRUE)) if (! MsgiUMToKMMessage(&UMMsg, &KMMsg, TRUE))
{ {
return FALSE; return FALSE;
@ -2924,6 +2951,9 @@ User32CallWindowProcFromKernel(PVOID Arguments, ULONG ArgumentLength)
KMMsg.hwnd = CallbackArgs->Wnd; KMMsg.hwnd = CallbackArgs->Wnd;
KMMsg.message = CallbackArgs->Msg; KMMsg.message = CallbackArgs->Msg;
KMMsg.wParam = CallbackArgs->wParam; KMMsg.wParam = CallbackArgs->wParam;
KMMsg.time = 0;
KMMsg.pt.x = 0;
KMMsg.pt.y = 0;
/* Check if lParam is really a pointer and adjust it if it is */ /* Check if lParam is really a pointer and adjust it if it is */
if (0 <= CallbackArgs->lParamBufferSize) if (0 <= CallbackArgs->lParamBufferSize)
{ {