diff --git a/reactos/base/applications/cmdutils/doskey/doskey.c b/reactos/base/applications/cmdutils/doskey/doskey.c index e87662235c9..0e597a44268 100644 --- a/reactos/base/applications/cmdutils/doskey/doskey.c +++ b/reactos/base/applications/cmdutils/doskey/doskey.c @@ -19,15 +19,27 @@ static VOID SetInsert(DWORD dwFlag) static VOID PrintHistory(VOID) { DWORD Length = GetConsoleCommandHistoryLength(pszExeName); + DWORD BufferLength; + PBYTE HistBuf; + TCHAR *Hist; + TCHAR *HistEnd; + /* On Windows, the ANSI version of GetConsoleCommandHistory requires * a buffer twice as large as the actual history length. */ - BYTE HistBuf[Length * (sizeof(WCHAR) / sizeof(TCHAR))]; - TCHAR *Hist = (TCHAR *)HistBuf; - TCHAR *HistEnd = (TCHAR *)&HistBuf[Length]; + BufferLength = Length * (sizeof(WCHAR) / sizeof(TCHAR)) * sizeof(BYTE); - if (GetConsoleCommandHistory(Hist, sizeof HistBuf, pszExeName)) + HistBuf = HeapAlloc(GetProcessHeap(), + HEAP_ZERO_MEMORY, + BufferLength); + if (!HistBuf) return; + Hist = (TCHAR *)HistBuf; + HistEnd = (TCHAR *)&HistBuf[Length]; + + if (GetConsoleCommandHistory(Hist, BufferLength, pszExeName)) for (; Hist < HistEnd; Hist += _tcslen(Hist) + 1) _tprintf(_T("%s\n"), Hist); + + HeapFree(GetProcessHeap(), 0, HistBuf); } static INT SetMacro(LPTSTR definition) @@ -65,23 +77,39 @@ static INT SetMacro(LPTSTR definition) static VOID PrintMacros(LPTSTR pszExeName, LPTSTR Indent) { DWORD Length = GetConsoleAliasesLength(pszExeName); - BYTE AliasBuf[Length]; - TCHAR *Alias = (TCHAR *)AliasBuf; - TCHAR *AliasEnd = (TCHAR *)&AliasBuf[Length]; + PBYTE AliasBuf; + TCHAR *Alias; + TCHAR *AliasEnd; - if (GetConsoleAliases(Alias, sizeof AliasBuf, pszExeName)) + AliasBuf = HeapAlloc(GetProcessHeap(), + HEAP_ZERO_MEMORY, + Length * sizeof(BYTE)); + if (!AliasBuf) return; + Alias = (TCHAR *)AliasBuf; + AliasEnd = (TCHAR *)&AliasBuf[Length]; + + if (GetConsoleAliases(Alias, Length * sizeof(BYTE), pszExeName)) for (; Alias < AliasEnd; Alias += _tcslen(Alias) + 1) _tprintf(_T("%s%s\n"), Indent, Alias); + + HeapFree(GetProcessHeap(), 0, AliasBuf); } static VOID PrintAllMacros(VOID) { DWORD Length = GetConsoleAliasExesLength(); - BYTE ExeNameBuf[Length]; - TCHAR *ExeName = (TCHAR *)ExeNameBuf; - TCHAR *ExeNameEnd = (TCHAR *)&ExeNameBuf[Length]; + PBYTE ExeNameBuf; + TCHAR *ExeName; + TCHAR *ExeNameEnd; - if (GetConsoleAliasExes(ExeName, sizeof ExeNameBuf)) + ExeNameBuf = HeapAlloc(GetProcessHeap(), + HEAP_ZERO_MEMORY, + Length * sizeof(BYTE)); + if (!ExeNameBuf) return; + ExeName = (TCHAR *)ExeNameBuf; + ExeNameEnd = (TCHAR *)&ExeNameBuf[Length]; + + if (GetConsoleAliasExes(ExeName, Length * sizeof(BYTE))) { for (; ExeName < ExeNameEnd; ExeName += _tcslen(ExeName) + 1) { @@ -90,6 +118,8 @@ static VOID PrintAllMacros(VOID) _tprintf(_T("\n")); } } + + HeapFree(GetProcessHeap(), 0, ExeNameBuf); } static VOID ReadFromFile(LPTSTR param) diff --git a/reactos/base/setup/usetup/interface/usetup.c b/reactos/base/setup/usetup/interface/usetup.c index c483812a3e5..787ec0c2fac 100644 --- a/reactos/base/setup/usetup/interface/usetup.c +++ b/reactos/base/setup/usetup/interface/usetup.c @@ -3133,6 +3133,7 @@ PAGE_NUMBER FileCopyPage(PINPUT_RECORD Ir) { COPYCONTEXT CopyContext; + unsigned int mem_bar_width; MUIDisplayPage(FILE_COPY_PAGE); @@ -3153,7 +3154,7 @@ FileCopyPage(PINPUT_RECORD Ir) MUIGetString(STRING_SETUPCOPYINGFILES)); // fit memory bars to screen width, distribute them uniform - unsigned int mem_bar_width = (xScreen - 26) / 5; + mem_bar_width = (xScreen - 26) / 5; mem_bar_width -= mem_bar_width % 2; // make even /* ATTENTION: The following progress bars are debug stuff, which should not be translated!! */ /* Create the paged pool progress bar */ diff --git a/reactos/base/shell/cmd/cmd.c b/reactos/base/shell/cmd/cmd.c index 0ef2ce25a9a..968d6e5c15d 100644 --- a/reactos/base/shell/cmd/cmd.c +++ b/reactos/base/shell/cmd/cmd.c @@ -484,15 +484,24 @@ Execute (LPTSTR Full, LPTSTR First, LPTSTR Rest, PARSED_COMMAND *Cmd) INT DoCommand(LPTSTR first, LPTSTR rest, PARSED_COMMAND *Cmd) { - TCHAR com[_tcslen(first) + _tcslen(rest) + 2]; /* full command line */ + TCHAR *com; TCHAR *cp; LPTSTR param; /* pointer to command's parameters */ INT cl; LPCOMMAND cmdptr; BOOL nointernal = FALSE; + INT ret; TRACE ("DoCommand: (\'%s\' \'%s\')\n", debugstr_aw(first), debugstr_aw(rest)); + /* full command line */ + com = cmd_alloc((_tcslen(first) + _tcslen(rest) + 2) * sizeof(TCHAR)); + if (com == NULL) + { + error_out_of_memory(); + return 1; + } + /* If present in the first word, these characters end the name of an * internal command and become the beginning of its parameters. */ cp = first + _tcscspn(first, _T("\t +,/;=[]")); @@ -526,11 +535,15 @@ DoCommand(LPTSTR first, LPTSTR rest, PARSED_COMMAND *Cmd) if (_tcsicmp(cmdptr->name, _T("echo")) != 0) while (_istspace(*param)) param++; - return cmdptr->func(param); + ret = cmdptr->func(param); + cmd_free(com); + return ret; } } - return Execute(com, first, rest, Cmd); + ret = Execute(com, first, rest, Cmd); + cmd_free(com); + return ret; } diff --git a/reactos/base/shell/cmd/console.c b/reactos/base/shell/cmd/console.c index cfed1a421c2..18541bf389f 100644 --- a/reactos/base/shell/cmd/console.c +++ b/reactos/base/shell/cmd/console.c @@ -125,20 +125,36 @@ static VOID ConWrite(TCHAR *str, DWORD len, DWORD nStdHandle) if (bUnicodeOutput) { #ifndef _UNICODE - WCHAR buffer[len]; + WCHAR *buffer = cmd_alloc(len * sizeof(WCHAR)); + if (!buffer) + { + error_out_of_memory(); + return; + } len = MultiByteToWideChar(OutputCodePage, 0, str, len, buffer, len, NULL, NULL); str = (PVOID)buffer; #endif WriteFile(hOutput, str, len * sizeof(WCHAR), &dwWritten, NULL); +#ifndef _UNICODE + cmd_free(buffer); +#endif } else { #ifdef _UNICODE - CHAR buffer[len * MB_LEN_MAX]; + CHAR *buffer = cmd_alloc(len * MB_LEN_MAX * sizeof(CHAR)); + if (!buffer) + { + error_out_of_memory(); + return; + } len = WideCharToMultiByte(OutputCodePage, 0, str, len, buffer, len * MB_LEN_MAX, NULL, NULL); str = (PVOID)buffer; #endif WriteFile(hOutput, str, len, &dwWritten, NULL); +#ifdef _UNICODE + cmd_free(buffer); +#endif } } diff --git a/reactos/base/shell/cmd/memory.c b/reactos/base/shell/cmd/memory.c index 42853266311..2b44ce9b0ab 100644 --- a/reactos/base/shell/cmd/memory.c +++ b/reactos/base/shell/cmd/memory.c @@ -25,6 +25,7 @@ INT CommandMemory (LPTSTR param) TCHAR szAvailPageFile[40]; TCHAR szTotalVirtual[40]; TCHAR szAvailVirtual[40]; + BOOL (WINAPI *GlobalMemoryStatusEx)(LPMEMORYSTATUSEX); if (!_tcsncmp (param, _T("/?"), 2)) { @@ -32,8 +33,8 @@ INT CommandMemory (LPTSTR param) return 0; } - BOOL (WINAPI *GlobalMemoryStatusEx)(LPMEMORYSTATUSEX) - = GetProcAddress(GetModuleHandle(_T("KERNEL32")), "GlobalMemoryStatusEx"); + GlobalMemoryStatusEx + = (BOOL (WINAPI *)(LPMEMORYSTATUSEX))GetProcAddress(GetModuleHandle(_T("KERNEL32")), "GlobalMemoryStatusEx"); if (GlobalMemoryStatusEx) { msex.dwLength = sizeof(MEMORYSTATUSEX); diff --git a/reactos/base/shell/cmd/misc.c b/reactos/base/shell/cmd/misc.c index f44ff43bd6c..4e3947fee68 100644 --- a/reactos/base/shell/cmd/misc.c +++ b/reactos/base/shell/cmd/misc.c @@ -38,7 +38,8 @@ /* * get a character out-of-band and honor Ctrl-Break characters */ -TCHAR cgetchar (VOID) +TCHAR +cgetchar (VOID) { HANDLE hInput = GetStdHandle (STD_INPUT_HANDLE); INPUT_RECORD irBuffer; diff --git a/reactos/base/shell/cmd/mklink.c b/reactos/base/shell/cmd/mklink.c index ecd0a81b72e..5c2d1236f44 100644 --- a/reactos/base/shell/cmd/mklink.c +++ b/reactos/base/shell/cmd/mklink.c @@ -39,9 +39,9 @@ static BOOL CreateJunction(LPCTSTR LinkName, LPCTSTR TargetName) HMODULE hNTDLL = GetModuleHandle(_T("NTDLL")); BOOLEAN (WINAPI *RtlDosPathNameToNtPathName_U)(PCWSTR, PUNICODE_STRING, PCWSTR *, CURDIR *) - = (BOOLEAN (WINAPI *)())GetProcAddress(hNTDLL, "RtlDosPathNameToNtPathName_U"); + = (BOOLEAN (WINAPI *)(PCWSTR, PUNICODE_STRING, PCWSTR *, CURDIR *))GetProcAddress(hNTDLL, "RtlDosPathNameToNtPathName_U"); VOID (WINAPI *RtlFreeUnicodeString)(PUNICODE_STRING) - = (VOID (WINAPI *)())GetProcAddress(hNTDLL, "RtlFreeUnicodeString"); + = (VOID (WINAPI *)(PUNICODE_STRING))GetProcAddress(hNTDLL, "RtlFreeUnicodeString"); TCHAR TargetFullPath[MAX_PATH]; #ifdef UNICODE @@ -177,9 +177,9 @@ cmd_mklink(LPTSTR param) * so load dynamically */ BOOL (WINAPI *CreateSymbolicLink)(LPCTSTR, LPCTSTR, DWORD) #ifdef UNICODE - = (BOOL (WINAPI *)())GetProcAddress(hKernel32, "CreateSymbolicLinkW"); + = (BOOL (WINAPI *)(LPCTSTR, LPCTSTR, DWORD))GetProcAddress(hKernel32, "CreateSymbolicLinkW"); #else - = (BOOL (WINAPI *)())GetProcAddress(hKernel32, "CreateSymbolicLinkA"); + = (BOOL (WINAPI *)(LPCTSTR, LPCTSTR, DWORD))GetProcAddress(hKernel32, "CreateSymbolicLinkA"); #endif if (CreateSymbolicLink && CreateSymbolicLink(Name[0], Name[1], Flags)) { @@ -193,9 +193,9 @@ cmd_mklink(LPTSTR param) * so load dynamically */ BOOL (WINAPI *CreateHardLink)(LPCTSTR, LPCTSTR, LPSECURITY_ATTRIBUTES) #ifdef UNICODE - = (BOOL (WINAPI *)())GetProcAddress(hKernel32, "CreateHardLinkW"); + = (BOOL (WINAPI *)(LPCTSTR, LPCTSTR, LPSECURITY_ATTRIBUTES))GetProcAddress(hKernel32, "CreateHardLinkW"); #else - = (BOOL (WINAPI *)())GetProcAddress(hKernel32, "CreateHardLinkA"); + = (BOOL (WINAPI *)(LPCTSTR, LPCTSTR, LPSECURITY_ATTRIBUTES))GetProcAddress(hKernel32, "CreateHardLinkA"); #endif if (CreateHardLink && CreateHardLink(Name[0], Name[1], NULL)) { diff --git a/reactos/base/shell/cmd/parser.c b/reactos/base/shell/cmd/parser.c index 02cc9980447..511625d86ea 100644 --- a/reactos/base/shell/cmd/parser.c +++ b/reactos/base/shell/cmd/parser.c @@ -326,10 +326,11 @@ static PARSED_COMMAND *ParseBlock(REDIRECTION *RedirList) static PARSED_COMMAND *ParseIf(void) { PARSED_COMMAND *Cmd = cmd_alloc(sizeof(PARSED_COMMAND)); + int Type; memset(Cmd, 0, sizeof(PARSED_COMMAND)); Cmd->Type = C_IF; - int Type = CurrentTokenType; + Type = CurrentTokenType; if (_tcsicmp(CurrentToken, _T("/I")) == 0) { Cmd->If.Flags |= IFFLAG_IGNORECASE; @@ -619,8 +620,9 @@ static PARSED_COMMAND *ParsePrimary(void) if (CurChar == _T('@')) { + PARSED_COMMAND *Cmd; ParseChar(); - PARSED_COMMAND *Cmd = cmd_alloc(sizeof(PARSED_COMMAND)); + Cmd = cmd_alloc(sizeof(PARSED_COMMAND)); Cmd->Type = C_QUIET; Cmd->Next = NULL; /* @ acts like a unary operator with low precedence, diff --git a/reactos/base/system/winlogon/winlogon.c b/reactos/base/system/winlogon/winlogon.c index 7a10e904c12..60a98431235 100644 --- a/reactos/base/system/winlogon/winlogon.c +++ b/reactos/base/system/winlogon/winlogon.c @@ -34,7 +34,7 @@ PlayLogonSoundThread( DWORD dwSize = sizeof(szBuffer); HMODULE hLibrary; SERVICE_STATUS_PROCESS Info; - typedef BOOL WINAPI (*PLAYSOUNDW)(LPCWSTR,HMODULE,DWORD); + typedef BOOL (WINAPI *PLAYSOUNDW)(LPCWSTR,HMODULE,DWORD); PLAYSOUNDW Play; ULONG Index = 0; diff --git a/reactos/dll/cpl/desk/preview.c b/reactos/dll/cpl/desk/preview.c index bee6ac10f2c..1f2cdb222f0 100644 --- a/reactos/dll/cpl/desk/preview.c +++ b/reactos/dll/cpl/desk/preview.c @@ -332,7 +332,7 @@ OnPaint(HWND hwnd, PPREVIEW_DATA pPreviewData) hUser32 = LoadLibrary(_T("user32.dll")); if(hUser32 == NULL) - return FALSE; + return; DrawCaptionTemp = (DCT_PROC)GetProcAddress(hUser32, (LPCSTR)DCT_ORD); DrawMenuBarTemp = (DMBT_PROC)GetProcAddress(hUser32, (LPCSTR)DMBT_ORD); diff --git a/reactos/dll/cpl/desk/settings.c b/reactos/dll/cpl/desk/settings.c index 5b05d377bd4..1ede0e78fce 100644 --- a/reactos/dll/cpl/desk/settings.c +++ b/reactos/dll/cpl/desk/settings.c @@ -626,11 +626,10 @@ INT_PTR CALLBACK SettingsPageProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam) { PGLOBAL_DATA pGlobalData; + TCHAR Message[1024], Title[256]; pGlobalData = (PGLOBAL_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER); - TCHAR Message[1024], Title[256]; - switch(uMsg) { case WM_INITDIALOG: diff --git a/reactos/dll/cpl/input/add.c b/reactos/dll/cpl/input/add.c index 5eaaddb89c8..20849f16ca8 100644 --- a/reactos/dll/cpl/input/add.c +++ b/reactos/dll/cpl/input/add.c @@ -188,9 +188,11 @@ CreateKeyboardLayoutList(HWND hItemsList) while (RegEnumKeyEx(hKey, dwIndex, szLayoutID, &dwSize, NULL, NULL, NULL, NULL) == ERROR_SUCCESS) { + INT iIndex; + GetLayoutName(szLayoutID, KeyName); - INT iIndex = (INT) SendMessage(hItemsList, CB_ADDSTRING, 0, (LPARAM)KeyName); + iIndex = (INT) SendMessage(hItemsList, CB_ADDSTRING, 0, (LPARAM)KeyName); pstrLayoutID = (PTSTR)HeapAlloc(hProcessHeap, 0, sizeof(szLayoutID)); lstrcpy(pstrLayoutID, szLayoutID); diff --git a/reactos/dll/win32/advapi32/reg/reg.c b/reactos/dll/win32/advapi32/reg/reg.c index 37a9a146673..919e78b7013 100644 --- a/reactos/dll/win32/advapi32/reg/reg.c +++ b/reactos/dll/win32/advapi32/reg/reg.c @@ -4104,7 +4104,7 @@ RegQueryValueExW(HKEY hkeyorg, static const int info_size = offsetof( KEY_VALUE_PARTIAL_INFORMATION, Data ); TRACE("(%p,%s,%p,%p,%p,%p=%d)\n", - hkey, debugstr_w(name), reserved, type, data, count, + hkeyorg, debugstr_w(name), reserved, type, data, count, (count && data) ? *count : 0 ); if ((data && !count) || reserved) return ERROR_INVALID_PARAMETER; @@ -4885,7 +4885,7 @@ RegSetValueA(HKEY hKeyOriginal, DWORD ret; NTSTATUS Status; - TRACE("(%p,%s,%d,%s,%d)\n", hKey, debugstr_a(lpSubKey), dwType, debugstr_a(lpData), cbData ); + TRACE("(%p,%s,%d,%s,%d)\n", hKeyOriginal, debugstr_a(lpSubKey), dwType, debugstr_a(lpData), cbData ); if (dwType != REG_SZ || !lpData) return ERROR_INVALID_PARAMETER; diff --git a/reactos/dll/win32/msafd/misc/dllmain.c b/reactos/dll/win32/msafd/misc/dllmain.c index c06df89267a..2573ac5fd7d 100644 --- a/reactos/dll/win32/msafd/misc/dllmain.c +++ b/reactos/dll/win32/msafd/misc/dllmain.c @@ -683,7 +683,7 @@ WSPSelect(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, - struct timeval *timeout, + const LPTIMEVAL timeout, LPINT lpErrno) { IO_STATUS_BLOCK IOSB; diff --git a/reactos/dll/win32/setupapi/devinst.c b/reactos/dll/win32/setupapi/devinst.c index 73853014a55..cb12d766ad5 100644 --- a/reactos/dll/win32/setupapi/devinst.c +++ b/reactos/dll/win32/setupapi/devinst.c @@ -1409,6 +1409,17 @@ HKEY WINAPI SetupDiCreateDevRegKeyW( { struct DeviceInfoSet *set = (struct DeviceInfoSet *)DeviceInfoSet; HKEY key = INVALID_HANDLE_VALUE; + LPWSTR lpGuidString = NULL; + LPWSTR DriverKey = NULL; /* {GUID}\Index */ + LPWSTR pDeviceInstance; /* Points into DriverKey, on the Index field */ + DWORD Index; /* Index used in the DriverKey name */ + DWORD rc; + HKEY hHWProfileKey = INVALID_HANDLE_VALUE; + HKEY hEnumKey = NULL; + HKEY hClassKey = NULL; + HKEY hDeviceKey = INVALID_HANDLE_VALUE; + HKEY hKey = NULL; + HKEY RootKey; TRACE("%p %p %lu %lu %lu %p %s\n", DeviceInfoSet, DeviceInfoData, Scope, HwProfile, KeyType, InfHandle, debugstr_w(InfSectionName)); @@ -1450,18 +1461,6 @@ HKEY WINAPI SetupDiCreateDevRegKeyW( return INVALID_HANDLE_VALUE; } - LPWSTR lpGuidString = NULL; - LPWSTR DriverKey = NULL; /* {GUID}\Index */ - LPWSTR pDeviceInstance; /* Points into DriverKey, on the Index field */ - DWORD Index; /* Index used in the DriverKey name */ - DWORD rc; - HKEY hHWProfileKey = INVALID_HANDLE_VALUE; - HKEY hEnumKey = NULL; - HKEY hClassKey = NULL; - HKEY hDeviceKey = INVALID_HANDLE_VALUE; - HKEY hKey = NULL; - HKEY RootKey; - if (Scope == DICS_FLAG_GLOBAL) RootKey = set->HKLM; else /* Scope == DICS_FLAG_CONFIGSPECIFIC */ @@ -1670,6 +1669,7 @@ BOOL WINAPI SetupDiCreateDeviceInfoW( { struct DeviceInfoSet *set = (struct DeviceInfoSet *)DeviceInfoSet; BOOL ret = FALSE; + SP_DEVINFO_DATA DevInfo; TRACE("%p %s %s %s %p %x %p\n", DeviceInfoSet, debugstr_w(DeviceName), debugstr_guid(ClassGuid), debugstr_w(DeviceDescription), @@ -1708,8 +1708,6 @@ BOOL WINAPI SetupDiCreateDeviceInfoW( return FALSE; } - SP_DEVINFO_DATA DevInfo; - if (CreationFlags & DICD_GENERATE_ID) { /* Generate a new unique ID for this device */ diff --git a/reactos/dll/win32/setupapi/install.c b/reactos/dll/win32/setupapi/install.c index ff36ad19866..a89081c7d6d 100644 --- a/reactos/dll/win32/setupapi/install.c +++ b/reactos/dll/win32/setupapi/install.c @@ -96,9 +96,9 @@ struct needs_callback_info typedef BOOL (*iterate_fields_func)( HINF hinf, PCWSTR field, void *arg ); static BOOL GetLineText( HINF hinf, PCWSTR section_name, PCWSTR key_name, PWSTR *value); -typedef HRESULT WINAPI (*COINITIALIZE)(IN LPVOID pvReserved); -typedef HRESULT WINAPI (*COCREATEINSTANCE)(IN REFCLSID rclsid, IN LPUNKNOWN pUnkOuter, IN DWORD dwClsContext, IN REFIID riid, OUT LPVOID *ppv); -typedef HRESULT WINAPI (*COUNINITIALIZE)(VOID); +typedef HRESULT (WINAPI *COINITIALIZE)(IN LPVOID pvReserved); +typedef HRESULT (WINAPI *COCREATEINSTANCE)(IN REFCLSID rclsid, IN LPUNKNOWN pUnkOuter, IN DWORD dwClsContext, IN REFIID riid, OUT LPVOID *ppv); +typedef HRESULT (WINAPI *COUNINITIALIZE)(VOID); /* Unicode constants */ static const WCHAR AddService[] = {'A','d','d','S','e','r','v','i','c','e',0}; diff --git a/reactos/dll/win32/ws2_32/misc/ns.c b/reactos/dll/win32/ws2_32/misc/ns.c index 40e3323f89b..e298b114921 100644 --- a/reactos/dll/win32/ws2_32/misc/ns.c +++ b/reactos/dll/win32/ws2_32/misc/ns.c @@ -632,8 +632,9 @@ struct hostent defined in w32api/include/winsock2.h void free_servent(struct servent* s) { + char* next; HFREE(s->s_name); - char* next = s->s_aliases[0]; + next = s->s_aliases[0]; while(next) { HFREE(next); next++; } s->s_port = 0; HFREE(s->s_proto); @@ -660,10 +661,11 @@ gethostbyname(IN CONST CHAR FAR* name) DNS_STATUS dns_status = {0}; /* include/WinDNS.h -- look up DNS_RECORD on MSDN */ PDNS_RECORD dp = 0; + PWINSOCK_THREAD_BLOCK p; addr = GH_INVALID; - PWINSOCK_THREAD_BLOCK p = NtCurrentTeb()->WinSockData; + p = NtCurrentTeb()->WinSockData; if( !p ) { diff --git a/reactos/dll/win32/ws2_32/misc/stubs.c b/reactos/dll/win32/ws2_32/misc/stubs.c index 1c79d18b3db..60880e345b8 100644 --- a/reactos/dll/win32/ws2_32/misc/stubs.c +++ b/reactos/dll/win32/ws2_32/misc/stubs.c @@ -510,13 +510,13 @@ WSAHtons(IN SOCKET s, IN USHORT hostshort, OUT USHORT FAR* lpnetshort) { + PCATALOG_ENTRY provider; if (!WSAINITIALIZED) { WSASetLastError(WSANOTINITIALISED); return SOCKET_ERROR; } - PCATALOG_ENTRY provider; if (!ReferenceProviderByHandle((HANDLE)s, &provider)) { WSASetLastError(WSAENOTSOCK); @@ -599,13 +599,13 @@ WSANtohs(IN SOCKET s, IN USHORT netshort, OUT USHORT FAR* lphostshort) { + PCATALOG_ENTRY provider; if (!WSAINITIALIZED) { WSASetLastError(WSANOTINITIALISED); return SOCKET_ERROR; } - PCATALOG_ENTRY provider; if (!ReferenceProviderByHandle((HANDLE)s, &provider)) { WSASetLastError(WSAENOTSOCK); diff --git a/reactos/include/ddk/ntifs.h b/reactos/include/ddk/ntifs.h index 733cc79cca9..5bfba73ae9c 100644 --- a/reactos/include/ddk/ntifs.h +++ b/reactos/include/ddk/ntifs.h @@ -1093,7 +1093,7 @@ typedef struct _FILE_FULL_DIRECTORY_INFORMATION { ULONG FileAttributes; ULONG FileNameLength; ULONG EaSize; - WCHAR FileName[0]; + WCHAR FileName[ANYSIZE_ARRAY]; } FILE_FULL_DIRECTORY_INFORMATION, *PFILE_FULL_DIRECTORY_INFORMATION; typedef struct _FILE_ID_FULL_DIR_INFORMATION { diff --git a/reactos/include/ddk/wdm.h b/reactos/include/ddk/wdm.h index 318ba240478..392a3768c01 100644 --- a/reactos/include/ddk/wdm.h +++ b/reactos/include/ddk/wdm.h @@ -575,13 +575,13 @@ typedef union _SLIST_HEADER { ULONGLONG Reserved:59; ULONGLONG Region:3; } Header8; + struct { ULONGLONG Depth:16; ULONGLONG Sequence:48; ULONGLONG HeaderType:1; ULONGLONG Init:1; ULONGLONG Reserved:2; ULONGLONG NextEntry:60; - struct { } Header16; } SLIST_HEADER, *PSLIST_HEADER; #else @@ -1956,8 +1956,8 @@ RtlEnlargedUnsignedDivide( IN OUT PULONG Remainder) { if (Remainder) - *Remainder = Dividend.QuadPart % Divisor; - return Dividend.QuadPart / Divisor; + *Remainder = (ULONG)(Dividend.QuadPart % Divisor); + return (ULONG)(Dividend.QuadPart / Divisor); } //DECLSPEC_DEPRECATED_DDK diff --git a/reactos/include/ddk/winddk.h b/reactos/include/ddk/winddk.h index 12f1bf0c8a2..5cdbe90e2b7 100644 --- a/reactos/include/ddk/winddk.h +++ b/reactos/include/ddk/winddk.h @@ -5128,9 +5128,17 @@ typedef struct _KFLOATING_SAVE { ULONG Spare1; } KFLOATING_SAVE, *PKFLOATING_SAVE; -static __inline +#ifdef _MSC_VER +// +// FIXME: Intrinsics +// +unsigned char __readfsbyte(const unsigned long Offset); +#pragma intrinsic(__readfsbyte) +#endif + + +FORCEINLINE ULONG -DDKAPI KeGetCurrentProcessorNumber(VOID) { #if defined(__GNUC__) @@ -5145,7 +5153,7 @@ KeGetCurrentProcessorNumber(VOID) #if _MSC_FULL_VER >= 13012035 return (ULONG)__readfsbyte(FIELD_OFFSET(KPCR, Number)); #else - __asm { movzx eax, _PCR KPCR.Number } + __asm { movzx eax, fs:[0] KPCR.Number } #endif #else #error Unknown compiler @@ -5945,7 +5953,7 @@ RemoveEntryList( OldBlink = Entry->Blink; OldFlink->Blink = OldBlink; OldBlink->Flink = OldFlink; - return (OldFlink == OldBlink); + return (BOOLEAN)(OldFlink == OldBlink); } static __inline PLIST_ENTRY diff --git a/reactos/include/psdk/npapi.h b/reactos/include/psdk/npapi.h index e5e8bfcfb0d..252665731fe 100644 --- a/reactos/include/psdk/npapi.h +++ b/reactos/include/psdk/npapi.h @@ -56,45 +56,45 @@ #define WNNC_START 0x0000000c #define WNNC_WAIT_FOR_START 0x00000001 -typedef DWORD APIENTRY (*PF_NPGetCaps)(DWORD ndex); +typedef DWORD (APIENTRY *PF_NPGetCaps)(DWORD ndex); /* get user */ -typedef DWORD APIENTRY (*PF_NPGetUser)(LPWSTR lpName, LPWSTR lpUserName, +typedef DWORD (APIENTRY *PF_NPGetUser)(LPWSTR lpName, LPWSTR lpUserName, LPDWORD lpnBufferLen); /* enumeration-related */ -typedef DWORD APIENTRY (*PF_NPOpenEnum)(DWORD dwScope, DWORD dwType, DWORD dwUsage, +typedef DWORD (APIENTRY *PF_NPOpenEnum)(DWORD dwScope, DWORD dwType, DWORD dwUsage, LPNETRESOURCEW lpNetResource, LPHANDLE lphEnum); -typedef DWORD APIENTRY (*PF_NPEnumResource)(HANDLE hEnum, LPDWORD lpcCount, +typedef DWORD (APIENTRY *PF_NPEnumResource)(HANDLE hEnum, LPDWORD lpcCount, LPVOID lpBuffer, LPDWORD lpBufferSize); -typedef DWORD APIENTRY (*PF_NPCloseEnum)(HANDLE hEnum); +typedef DWORD (APIENTRY *PF_NPCloseEnum)(HANDLE hEnum); typedef DWORD (APIENTRY *PF_NPGetResourceInformation)(LPNETRESOURCEW lpNetResource, LPVOID lpBuffer, LPDWORD lpcbBuffer, LPWSTR* lplpSystem); /* connection-related */ -typedef DWORD APIENTRY (*PF_NPAddConnection)(LPNETRESOURCEW lpNetResource, +typedef DWORD (APIENTRY *PF_NPAddConnection)(LPNETRESOURCEW lpNetResource, LPWSTR lpPassword, LPWSTR lpUserName); -typedef DWORD APIENTRY (*PF_NPAddConnection3)(HWND hwndOwner, +typedef DWORD (APIENTRY *PF_NPAddConnection3)(HWND hwndOwner, LPNETRESOURCEW lpNetResource, LPWSTR lpPassword, LPWSTR lpUserName, DWORD dwFlags); -typedef DWORD APIENTRY (*PF_NPCancelConnection)(LPWSTR lpName, BOOL fForce); -typedef DWORD APIENTRY (*PF_NPGetConnection)(LPWSTR lpLocalName, +typedef DWORD (APIENTRY *PF_NPCancelConnection)(LPWSTR lpName, BOOL fForce); +typedef DWORD (APIENTRY *PF_NPGetConnection)(LPWSTR lpLocalName, LPWSTR lpRemoteName, LPDWORD lpnBufferLen); /* network name manipulation */ -typedef DWORD APIENTRY (*PF_NPGetUniversalName)(LPWSTR lpLocalPath, +typedef DWORD (APIENTRY *PF_NPGetUniversalName)(LPWSTR lpLocalPath, DWORD dwInfoLevel, LPVOID lpBuffer, LPDWORD lpnBufferSize); -typedef DWORD APIENTRY (*PF_NPFormatNetworkName)(LPWSTR lpRemoteName, +typedef DWORD (APIENTRY *PF_NPFormatNetworkName)(LPWSTR lpRemoteName, LPWSTR lpFormattedName, LPDWORD lpnLength, DWORD dwFlags, DWORD dwAveCharPerLine); /* dialogs */ -typedef DWORD APIENTRY (*PF_NPDeviceMode)(HWND hParent); +typedef DWORD (APIENTRY *PF_NPDeviceMode)(HWND hParent); /* search dialog */ #define WNSRCH_REFRESH_FIRST_LEVEL 0x00000001 -typedef DWORD APIENTRY (*PF_NPSearchDialog)(HWND hwndParent, +typedef DWORD (APIENTRY *PF_NPSearchDialog)(HWND hwndParent, LPNETRESOURCEW lpNetResource, LPVOID lpBuffer, DWORD cbBuffer, LPDWORD lpnFlags); @@ -109,10 +109,10 @@ typedef DWORD APIENTRY (*PF_NPSearchDialog)(HWND hwndParent, #define WNPS_DIR 1 #define WNPS_MULT 2 -typedef DWORD APIENTRY (*PF_NPGetPropertyText)(DWORD iButton, DWORD nPropSel, +typedef DWORD (APIENTRY *PF_NPGetPropertyText)(DWORD iButton, DWORD nPropSel, LPWSTR lpName, LPWSTR lpButtonName, DWORD nButtonNameLen, DWORD nType); -typedef DWORD APIENTRY (*PF_NPPropertyDialog)(HWND hwndParent, DWORD iButtonDlg, +typedef DWORD (APIENTRY *PF_NPPropertyDialog)(HWND hwndParent, DWORD iButtonDlg, DWORD nPropSel, LPWSTR lpFileName, DWORD nType); /* admin */ @@ -123,9 +123,9 @@ typedef DWORD APIENTRY (*PF_NPPropertyDialog)(HWND hwndParent, DWORD iButtonDlg, #define WNDN_RMDIR 2 #define WNDN_MVDIR 3 -typedef DWORD APIENTRY (*PF_NPGetDirectoryType)(LPWSTR lpName, LPINT lpType, +typedef DWORD (APIENTRY *PF_NPGetDirectoryType)(LPWSTR lpName, LPINT lpType, BOOL bFlushCache); -typedef DWORD APIENTRY (*PF_NPDirectoryNotify)(HWND hwnd, LPWSTR lpDir, +typedef DWORD (APIENTRY *PF_NPDirectoryNotify)(HWND hwnd, LPWSTR lpDir, DWORD dwOper); /* permission editor dialogs */ @@ -133,16 +133,16 @@ typedef DWORD APIENTRY (*PF_NPDirectoryNotify)(HWND hwnd, LPWSTR lpDir, #define WNPERMC_AUDIT 0x00000002 #define WNPERMC_OWNER 0x00000004 -typedef DWORD APIENTRY (*PF_NPFMXGetPermCaps)(LPWSTR lpDriveName); +typedef DWORD (APIENTRY *PF_NPFMXGetPermCaps)(LPWSTR lpDriveName); #define WNPERM_DLG_PERM 0 #define WNPERM_DLG_AUDIT 1 #define WNPERM_DLG_OWNER 2 -typedef DWORD APIENTRY (*PF_NPFMXEditPerm)(LPWSTR lpDriveName, HWND hwndFMX, +typedef DWORD (APIENTRY *PF_NPFMXEditPerm)(LPWSTR lpDriveName, HWND hwndFMX, DWORD nDialogType); -typedef DWORD APIENTRY (*PF_NPFMXGetPermHelp)(LPWSTR lpDriveName, +typedef DWORD (APIENTRY *PF_NPFMXGetPermHelp)(LPWSTR lpDriveName, DWORD nDialogType, BOOL fDirectory, LPVOID lpFileNameBuffer, LPDWORD lpBufferSize, LPDWORD lpnHelpContext); @@ -160,11 +160,11 @@ VOID WINAPI WNetSetLastErrorW(DWORD err, LPWSTR lpError, LPWSTR lpProviders); #define WN_NT_PASSWORD_CHANGED 0x00000002 /* notifications */ -typedef DWORD APIENTRY (*PF_NPLogonNotify)(PLUID lpLogonId, +typedef DWORD (APIENTRY *PF_NPLogonNotify)(PLUID lpLogonId, LPCWSTR lpAuthentInfoType, LPVOID lpAuthentInfo, LPCWSTR lpPreviousAuthentInfoType, LPVOID lpPreviousAuthentInfo, LPWSTR lpStationName, LPVOID StationHandle, LPWSTR *lpLogonScript); -typedef DWORD APIENTRY (*PF_NPPasswordChangeNotify)(LPCWSTR lpAuthentInfoType, +typedef DWORD (APIENTRY *PF_NPPasswordChangeNotify)(LPCWSTR lpAuthentInfoType, LPVOID lpAuthentInfo, LPCWSTR lpPreviousAuthentInfoType, LPVOID lpPreviousAuthentInfo, LPWSTR lpStationName, LPVOID StationHandle, DWORD dwChangeInfo); @@ -201,9 +201,9 @@ typedef struct _NOTIFYCANCEL BOOL fForce; } NOTIFYCANCEL, *LPNOTIFYCANCEL; -typedef DWORD APIENTRY (*PF_AddConnectNotify)(LPNOTIFYINFO lpNotifyInfo, +typedef DWORD (APIENTRY *PF_AddConnectNotify)(LPNOTIFYINFO lpNotifyInfo, LPNOTIFYADD lpAddInfo); -typedef DWORD APIENTRY (*PF_CancelConnectNotify)(LPNOTIFYINFO lpNotifyInfo, +typedef DWORD (APIENTRY *PF_CancelConnectNotify)(LPNOTIFYINFO lpNotifyInfo, LPNOTIFYADD lpAddInfo); #endif /* ndef __WINE_NPAPI_H__ */ diff --git a/reactos/lib/3rdparty/mingw/mingw.rbuild b/reactos/lib/3rdparty/mingw/mingw.rbuild index 4e0bda3e634..c41e7a4b325 100644 --- a/reactos/lib/3rdparty/mingw/mingw.rbuild +++ b/reactos/lib/3rdparty/mingw/mingw.rbuild @@ -31,6 +31,7 @@ include/reactos/mingw-w64 + /wd4733 crt0_c.c crtexe.c dllargv.c diff --git a/reactos/lib/cmlib/cmdata.h b/reactos/lib/cmlib/cmdata.h index 7f2b084e9c4..b4a3df7af9d 100644 --- a/reactos/lib/cmlib/cmdata.h +++ b/reactos/lib/cmlib/cmdata.h @@ -114,7 +114,7 @@ typedef struct _CM_KEY_NODE ULONG WorkVar; USHORT NameLength; USHORT ClassLength; - WCHAR Name[0]; + WCHAR Name[ANYSIZE_ARRAY]; } CM_KEY_NODE, *PCM_KEY_NODE; // @@ -122,7 +122,7 @@ typedef struct _CM_KEY_NODE // typedef struct _VALUE_LIST_CELL { - HCELL_INDEX ValueOffset[0]; + HCELL_INDEX ValueOffset[ANYSIZE_ARRAY]; } VALUE_LIST_CELL, *PVALUE_LIST_CELL; // @@ -137,7 +137,7 @@ typedef struct _CM_KEY_VALUE ULONG Type; USHORT Flags; USHORT Unused1; - WCHAR Name[0]; + WCHAR Name[ANYSIZE_ARRAY]; } CM_KEY_VALUE, *PCM_KEY_VALUE; // @@ -152,7 +152,7 @@ typedef struct _CM_KEY_SECURITY ULONG ReferenceCount; ULONG DescriptorLength; //SECURITY_DESCRIPTOR_RELATIVE Descriptor; - UCHAR Data[0]; + UCHAR Data[ANYSIZE_ARRAY]; } CM_KEY_SECURITY, *PCM_KEY_SECURITY; #ifdef CMLIB_HOST diff --git a/reactos/lib/fslib/ext2lib/Mke2fs.c b/reactos/lib/fslib/ext2lib/Mke2fs.c index b43af1140f4..5cafd14a05b 100644 --- a/reactos/lib/fslib/ext2lib/Mke2fs.c +++ b/reactos/lib/fslib/ext2lib/Mke2fs.c @@ -814,6 +814,10 @@ Ext2Format( /* File Sys Structure */ EXT2_FILESYS FileSys; ULONG Percent; + ULONG rsv; + ULONG blocks; + ULONG start; + ULONG ret_blk; Callback(PROGRESS, 0, (PVOID)&Percent); @@ -917,10 +921,8 @@ Ext2Format( } /* rsv must be a power of two (64kB is MD RAID sb alignment) */ - ULONG rsv = 65536 / FileSys.blocksize; - ULONG blocks = Ext2Sb.s_blocks_count; - ULONG start; - ULONG ret_blk; + rsv = 65536 / FileSys.blocksize; + blocks = Ext2Sb.s_blocks_count; #ifdef ZAP_BOOTBLOCK zap_sector(&FileSys, 0, 2); diff --git a/reactos/ntoskrnl/include/internal/i386/intrin_i.h b/reactos/ntoskrnl/include/internal/i386/intrin_i.h index 71945053f97..596c5d62680 100644 --- a/reactos/ntoskrnl/include/internal/i386/intrin_i.h +++ b/reactos/ntoskrnl/include/internal/i386/intrin_i.h @@ -123,6 +123,7 @@ Ke386Wrmsr(IN ULONG Register, IN ULONG Var1, IN ULONG Var2) { + __asm mov ecx, Register; __asm mov eax, Var1; __asm mov edx, Var2; __asm wrmsr; @@ -134,6 +135,7 @@ Ke386Rdmsr(IN ULONG Register, IN ULONG Var1, IN ULONG Var2) { + __asm mov ecx, Register; __asm mov eax, Var1; __asm mov edx, Var2; __asm rdmsr; diff --git a/reactos/subsystems/win32/csrss/win32csr/alias.c b/reactos/subsystems/win32/csrss/win32csr/alias.c index 9e48a962ad5..1432be1be53 100644 --- a/reactos/subsystems/win32/csrss/win32csr/alias.c +++ b/reactos/subsystems/win32/csrss/win32csr/alias.c @@ -104,14 +104,17 @@ IntInsertAliasHeader(PALIAS_HEADER * RootHeader, PALIAS_HEADER NewHeader) PALIAS_ENTRY IntGetAliasEntry(PALIAS_HEADER Header, LPCWSTR lpSrcName) { + PALIAS_ENTRY RootHeader; + if (Header == NULL) return NULL; - PALIAS_ENTRY RootHeader = Header->Data; + RootHeader = Header->Data; while(RootHeader) { + INT diff; DPRINT("IntGetAliasEntry>lpSource %S\n", RootHeader->lpSource); - INT diff = _wcsicmp(RootHeader->lpSource, lpSrcName); + diff = _wcsicmp(RootHeader->lpSource, lpSrcName); if (!diff) return RootHeader;