https://git.reactos.org/?p=reactos.git;a=commitdiff;h=5d8e834897781944dcaf8…
commit 5d8e834897781944dcaf80de6c3df9c2c51212c7
Author: Timo Kreuzer <timo.kreuzer(a)reactos.org>
AuthorDate: Tue Jun 29 18:50:15 2021 +0200
Commit: Timo Kreuzer <timo.kreuzer(a)reactos.org>
CommitDate: Fri Jul 23 22:03:48 2021 +0200
[REACTOS] Fix a number of MSVC warnings
---
base/applications/sndvol32/dialog.c | 2 +-
base/services/wkssvc/wkssvc.c | 11 ++-----
base/setup/lib/utils/osdetect.c | 2 +-
base/setup/lib/utils/regutil.c | 4 +--
base/setup/usetup/cmdcons.c | 2 +-
base/setup/usetup/mui.c | 6 ++--
base/setup/usetup/progress.c | 4 +--
base/setup/usetup/spapisup/cabinet.c | 6 ++--
base/setup/usetup/usetup.c | 2 +-
base/shell/cmd/cmdinput.c | 4 +--
base/system/services/config.c | 9 +++++-
dll/win32/aclui/sidcache.c | 9 +++++-
dll/win32/advapi32/misc/hwprofiles.c | 8 ++---
dll/win32/advapi32/reg/reg.c | 2 +-
dll/win32/kernel32/client/vdm.c | 16 +++++++---
dll/win32/lsasrv/lookup.c | 13 +++++++--
dll/win32/lsasrv/privileges.c | 4 +--
dll/win32/msgina/gui.c | 8 ++---
dll/win32/msv1_0/msv1_0.c | 10 +++++--
dll/win32/msv1_0/precomp.h | 1 +
dll/win32/ntmarta/ntmarta.c | 18 ++++++++++--
dll/win32/shell32/CShellLink.cpp | 14 +++++++--
dll/win32/shell32/folders/CPrinterFolder.cpp | 12 ++++++--
dll/win32/syssetup/security.c | 34 ++++++++++++++++++----
drivers/filesystems/fastfat_new/fatstruc.h | 1 +
drivers/filesystems/npfs/main.c | 2 +-
drivers/input/kbdclass/kbdclass.c | 4 +--
drivers/input/mouclass/mouclass.c | 4 +--
drivers/storage/floppy/floppy/ioctl.c | 4 +--
.../applications/explorer-old/shell/ntobjfs.cpp | 2 +-
modules/rosapps/applications/fraginator/Unfrag.cpp | 2 +-
modules/rosapps/applications/net/netreg/netreg.cpp | 6 ++--
.../applications/net/roshttpd/include/httpd.h | 2 +-
modules/rosapps/applications/notevil/notevil.c | 10 +++----
.../applications/screensavers/cylfrac/cylfrac.c | 6 ++--
modules/rostests/apitests/atl/SubclassWindow.cpp | 1 +
sdk/include/ddk/acpiioct.h | 2 +-
sdk/include/psdk/intsafe.h | 2 ++
sdk/lib/crt/string/wtoi64.c | 4 +--
sdk/lib/drivers/ip/network/loopback.c | 2 +-
subsystems/mvdm/ntvdm/dos/dem.c | 2 +-
win32ss/printing/providers/localspl/tools.c | 2 +-
win32ss/user/user32/windows/class.c | 2 +-
43 files changed, 175 insertions(+), 86 deletions(-)
diff --git a/base/applications/sndvol32/dialog.c b/base/applications/sndvol32/dialog.c
index 1fac34d7bab..71f1e8abdc6 100644
--- a/base/applications/sndvol32/dialog.c
+++ b/base/applications/sndvol32/dialog.c
@@ -338,7 +338,7 @@ LoadDialog(
LPWORD Offset;
WORD FontSize;
WCHAR FontName[100];
- WORD Length;
+ SIZE_T Length;
int width;
DWORD units = GetDialogBaseUnits();
diff --git a/base/services/wkssvc/wkssvc.c b/base/services/wkssvc/wkssvc.c
index d1e5b87840a..61472132fe1 100644
--- a/base/services/wkssvc/wkssvc.c
+++ b/base/services/wkssvc/wkssvc.c
@@ -73,7 +73,8 @@ static
DWORD
ServiceInit(VOID)
{
- LSA_STRING ProcessName, PackageName;
+ LSA_STRING ProcessName = RTL_CONSTANT_STRING("Workstation");
+ LSA_STRING PackageName = RTL_CONSTANT_STRING(MSV1_0_PACKAGE_NAME);
LSA_OPERATIONAL_MODE Mode;
HANDLE hThread;
NTSTATUS Status;
@@ -84,10 +85,6 @@ ServiceInit(VOID)
VersionInfo.dwOSVersionInfoSize = sizeof(VersionInfo);
GetVersionExW(&VersionInfo);
- ProcessName.Buffer = "Workstation";
- ProcessName.Length = strlen(ProcessName.Buffer);
- ProcessName.MaximumLength = ProcessName.Length + 1;
-
Status = LsaRegisterLogonProcess(&ProcessName,
&LsaHandle,
&Mode);
@@ -97,10 +94,6 @@ ServiceInit(VOID)
return 1;
}
- PackageName.Buffer = MSV1_0_PACKAGE_NAME;
- PackageName.Length = strlen(PackageName.Buffer);
- PackageName.MaximumLength = PackageName.Length + 1;
-
Status = LsaLookupAuthenticationPackage(LsaHandle,
&PackageName,
&LsaAuthenticationPackage);
diff --git a/base/setup/lib/utils/osdetect.c b/base/setup/lib/utils/osdetect.c
index d191c58998e..0ee246c60b1 100644
--- a/base/setup/lib/utils/osdetect.c
+++ b/base/setup/lib/utils/osdetect.c
@@ -320,7 +320,7 @@ CheckForValidPEAndVendor(
RtlStringCbCopyNW(VendorName->Buffer, VendorName->MaximumLength,
pvData, BufLen * sizeof(WCHAR));
- VendorName->Length = wcslen(VendorName->Buffer) * sizeof(WCHAR);
+ VendorName->Length = (USHORT)wcslen(VendorName->Buffer) *
sizeof(WCHAR);
Success = TRUE;
}
diff --git a/base/setup/lib/utils/regutil.c b/base/setup/lib/utils/regutil.c
index 60e0e9fd956..012acc03d5e 100644
--- a/base/setup/lib/utils/regutil.c
+++ b/base/setup/lib/utils/regutil.c
@@ -78,7 +78,7 @@ CreateNestedKey(PHANDLE KeyHandle,
break;
}
*Ptr = (WCHAR)0;
- LocalKeyName.Length = wcslen(LocalKeyName.Buffer) * sizeof(WCHAR);
+ LocalKeyName.Length = (Ptr - LocalKeyName.Buffer) * sizeof(WCHAR);
Status = NtCreateKey(&LocalKeyHandle,
KEY_CREATE_SUB_KEY,
@@ -110,7 +110,7 @@ CreateNestedKey(PHANDLE KeyHandle,
NtClose(LocalKeyHandle);
LocalKeyName.Buffer[LocalKeyName.Length / sizeof(WCHAR)] = L'\\';
- LocalKeyName.Length = wcslen(LocalKeyName.Buffer) * sizeof(WCHAR);
+ LocalKeyName.Length = (USHORT)wcslen(LocalKeyName.Buffer) * sizeof(WCHAR);
Status = NtCreateKey(&LocalKeyHandle,
KEY_ALL_ACCESS,
diff --git a/base/setup/usetup/cmdcons.c b/base/setup/usetup/cmdcons.c
index 0307c11ca1d..e1cd5c74e3f 100644
--- a/base/setup/usetup/cmdcons.c
+++ b/base/setup/usetup/cmdcons.c
@@ -1026,7 +1026,7 @@ ReadCommand(
{
/* If this character insertion will cause screen scrolling,
* adjust the saved origin of the command prompt. */
- tempscreen = strlen(str + current) + curx;
+ tempscreen = (USHORT)strlen(str + current) + curx;
if ((tempscreen % State->maxx) == (State->maxx - 1) &&
(tempscreen / State->maxx) + cury == (State->maxy - 1))
{
diff --git a/base/setup/usetup/mui.c b/base/setup/usetup/mui.c
index d1e6599c461..365576e58f4 100644
--- a/base/setup/usetup/mui.c
+++ b/base/setup/usetup/mui.c
@@ -140,7 +140,7 @@ MUIClearPage(
CONSOLE_ClearStyledText(entry[index].X,
entry[index].Y,
entry[index].Flags,
- strlen(entry[index].Buffer));
+ (USHORT)strlen(entry[index].Buffer));
index++;
}
}
@@ -347,7 +347,7 @@ MUIClearText(
CONSOLE_ClearTextXY(
entry[Index].X,
entry[Index].Y,
- (ULONG)strlen(entry[Index].Buffer));
+ (USHORT)strlen(entry[Index].Buffer));
/* Increment the index and loop over next entires with the same ID */
Index++;
@@ -404,7 +404,7 @@ MUIClearStyledText(
entry[Index].X,
entry[Index].Y,
Flags,
- (ULONG)strlen(entry[Index].Buffer));
+ (USHORT)strlen(entry[Index].Buffer));
/* Increment the index and loop over next entires with the same ID */
Index++;
diff --git a/base/setup/usetup/progress.c b/base/setup/usetup/progress.c
index 1d095aeb6d0..aa1f81d3e8c 100644
--- a/base/setup/usetup/progress.c
+++ b/base/setup/usetup/progress.c
@@ -240,7 +240,7 @@ DrawProgressBar(
if (Bar->UpdateProgressProc &&
Bar->UpdateProgressProc(Bar, TRUE, TextBuffer, ARRAYSIZE(TextBuffer)))
{
- coPos.X = Bar->Left + (Bar->Width - strlen(TextBuffer) + 1) / 2;
+ coPos.X = Bar->Left + (Bar->Width - (USHORT)strlen(TextBuffer) + 1) / 2;
coPos.Y = Bar->Top;
WriteConsoleOutputCharacterA(StdOutput,
TextBuffer,
@@ -383,7 +383,7 @@ ProgressSetStep(
if (Bar->UpdateProgressProc &&
Bar->UpdateProgressProc(Bar, FALSE, TextBuffer, ARRAYSIZE(TextBuffer)))
{
- coPos.X = Bar->Left + (Bar->Width - strlen(TextBuffer) + 1) / 2;
+ coPos.X = Bar->Left + (Bar->Width - (USHORT)strlen(TextBuffer) + 1) / 2;
coPos.Y = Bar->Top;
WriteConsoleOutputCharacterA(StdOutput,
TextBuffer,
diff --git a/base/setup/usetup/spapisup/cabinet.c b/base/setup/usetup/spapisup/cabinet.c
index 46ae4e5d5d5..c9efdbc5431 100644
--- a/base/setup/usetup/spapisup/cabinet.c
+++ b/base/setup/usetup/spapisup/cabinet.c
@@ -981,6 +981,7 @@ CabinetExtractFile(
PCFFOLDER CurrentFolder;
LARGE_INTEGER MaxDestFileSize;
LONG InputLength, OutputLength;
+ SIZE_T StringLength;
char Chunk[512];
if (wcscmp(Search->Cabinet, CabinetContext->CabinetName) != 0)
@@ -1039,8 +1040,9 @@ CabinetExtractFile(
{
RtlInitAnsiString(&AnsiString, Search->File->FileName);
wcscpy(DestName, CabinetContext->DestPath);
- UnicodeString.MaximumLength = sizeof(DestName) - wcslen(DestName) *
sizeof(WCHAR);
- UnicodeString.Buffer = DestName + wcslen(DestName);
+ StringLength = wcslen(DestName);
+ UnicodeString.MaximumLength = sizeof(DestName) - (USHORT)StringLength *
sizeof(WCHAR);
+ UnicodeString.Buffer = DestName + StringLength;
UnicodeString.Length = 0;
RtlAnsiStringToUnicodeString(&UnicodeString, &AnsiString, FALSE);
diff --git a/base/setup/usetup/usetup.c b/base/setup/usetup/usetup.c
index 520b257846d..16a520cbd84 100644
--- a/base/setup/usetup/usetup.c
+++ b/base/setup/usetup/usetup.c
@@ -1907,7 +1907,7 @@ ShowPartitionSizeInputBox(SHORT Left,
coPos.X = Left + 2;
coPos.Y = Top + 2;
strcpy(Buffer, MUIGetString(STRING_PARTITIONSIZE));
- iLeft = coPos.X + strlen(Buffer) + 1;
+ iLeft = coPos.X + (USHORT)strlen(Buffer) + 1;
iTop = coPos.Y;
WriteConsoleOutputCharacterA(StdOutput,
diff --git a/base/shell/cmd/cmdinput.c b/base/shell/cmd/cmdinput.c
index e609c5ac354..e1c7c16dba8 100644
--- a/base/shell/cmd/cmdinput.c
+++ b/base/shell/cmd/cmdinput.c
@@ -96,7 +96,7 @@
* 30-Apr-2004 (Filip Navara <xnavara(a)volny.cz>)
* Fixed problems when the screen was scrolled away.
*
- * 28-September-2007 (Herv� Poussineau)
+ * 28-September-2007 (Hervé Poussineau)
* Added history possibilities to right key.
*/
@@ -142,7 +142,7 @@ BOOL ReadCommand(LPTSTR str, INT maxlen)
SHORT orgy;
SHORT curx; /*current x/y cursor position*/
SHORT cury;
- SHORT tempscreen;
+ SIZE_T tempscreen;
INT count; /*used in some for loops*/
INT current = 0; /*the position of the cursor in the string (str)*/
INT charcount = 0;/*chars in the string (str)*/
diff --git a/base/system/services/config.c b/base/system/services/config.c
index db1b0dafc79..ce976356277 100644
--- a/base/system/services/config.c
+++ b/base/system/services/config.c
@@ -476,9 +476,16 @@ ScmSetServicePassword(
UNICODE_STRING Password;
NTSTATUS Status;
DWORD dwError = ERROR_SUCCESS;
+ SIZE_T ServiceNameLength;
RtlZeroMemory(&ObjectAttributes, sizeof(OBJECT_ATTRIBUTES));
+ ServiceNameLength = wcslen(pszServiceName);
+ if (ServiceNameLength > (UNICODE_STRING_MAX_CHARS - 4))
+ {
+ return ERROR_INVALID_PARAMETER;
+ }
+
Status = LsaOpenPolicy(NULL,
&ObjectAttributes,
POLICY_CREATE_SECRET,
@@ -486,7 +493,7 @@ ScmSetServicePassword(
if (!NT_SUCCESS(Status))
return RtlNtStatusToDosError(Status);
- ServiceName.Length = (wcslen(pszServiceName) + 4) * sizeof(WCHAR);
+ ServiceName.Length = ((USHORT)ServiceNameLength + 4) * sizeof(WCHAR);
ServiceName.MaximumLength = ServiceName.Length + sizeof(WCHAR);
ServiceName.Buffer = HeapAlloc(GetProcessHeap(),
HEAP_ZERO_MEMORY,
diff --git a/dll/win32/aclui/sidcache.c b/dll/win32/aclui/sidcache.c
index e68cf9320b4..1c9c7264dd9 100644
--- a/dll/win32/aclui/sidcache.c
+++ b/dll/win32/aclui/sidcache.c
@@ -176,11 +176,18 @@ OpenLSAPolicyHandle(IN LPWSTR SystemName,
LSA_OBJECT_ATTRIBUTES LsaObjectAttributes = {0};
LSA_UNICODE_STRING LsaSystemName, *psn;
NTSTATUS Status;
+ SIZE_T NameLength;
if (SystemName != NULL && SystemName[0] != L'\0')
{
+ NameLength = wcslen(SystemName);
+ if (NameLength > UNICODE_STRING_MAX_CHARS)
+ {
+ return FALSE;
+ }
+
LsaSystemName.Buffer = SystemName;
- LsaSystemName.Length = wcslen(SystemName) * sizeof(WCHAR);
+ LsaSystemName.Length = NameLength * sizeof(WCHAR);
LsaSystemName.MaximumLength = LsaSystemName.Length + sizeof(WCHAR);
psn = &LsaSystemName;
}
diff --git a/dll/win32/advapi32/misc/hwprofiles.c b/dll/win32/advapi32/misc/hwprofiles.c
index 980001d999b..88a0188cf33 100644
--- a/dll/win32/advapi32/misc/hwprofiles.c
+++ b/dll/win32/advapi32/misc/hwprofiles.c
@@ -42,8 +42,8 @@ GetCurrentHwProfileA(LPHW_PROFILE_INFOA lpHwProfileInfo)
lpHwProfileInfo->dwDockInfo = ProfileInfo.dwDockInfo;
/* Convert the profile GUID to ANSI */
- StringU.Buffer = (PWCHAR)ProfileInfo.szHwProfileGuid;
- StringU.Length = wcslen(ProfileInfo.szHwProfileGuid) * sizeof(WCHAR);
+ StringU.Buffer = ProfileInfo.szHwProfileGuid;
+ StringU.Length = (USHORT)wcslen(ProfileInfo.szHwProfileGuid) * sizeof(WCHAR);
StringU.MaximumLength = HW_PROFILE_GUIDLEN * sizeof(WCHAR);
StringA.Buffer = (PCHAR)&lpHwProfileInfo->szHwProfileGuid;
StringA.Length = 0;
@@ -58,8 +58,8 @@ GetCurrentHwProfileA(LPHW_PROFILE_INFOA lpHwProfileInfo)
}
/* Convert the profile name to ANSI */
- StringU.Buffer = (PWCHAR)ProfileInfo.szHwProfileName;
- StringU.Length = wcslen(ProfileInfo.szHwProfileName) * sizeof(WCHAR);
+ StringU.Buffer = ProfileInfo.szHwProfileName;
+ StringU.Length = (USHORT)wcslen(ProfileInfo.szHwProfileName) * sizeof(WCHAR);
StringU.MaximumLength = MAX_PROFILE_LEN * sizeof(WCHAR);
StringA.Buffer = (PCHAR)&lpHwProfileInfo->szHwProfileName;
StringA.Length = 0;
diff --git a/dll/win32/advapi32/reg/reg.c b/dll/win32/advapi32/reg/reg.c
index 36aa3b867ae..3d739fb9d4f 100644
--- a/dll/win32/advapi32/reg/reg.c
+++ b/dll/win32/advapi32/reg/reg.c
@@ -961,7 +961,7 @@ CreateNestedKey(PHKEY KeyHandle,
}
*Ptr = (WCHAR)0;
- LocalKeyName.Length = wcslen(LocalKeyName.Buffer) * sizeof(WCHAR);
+ LocalKeyName.Length = (USHORT)wcslen(LocalKeyName.Buffer) * sizeof(WCHAR);
Status = NtCreateKey(&LocalKeyHandle,
KEY_CREATE_SUB_KEY,
diff --git a/dll/win32/kernel32/client/vdm.c b/dll/win32/kernel32/client/vdm.c
index ff6e7851295..07022d8740b 100644
--- a/dll/win32/kernel32/client/vdm.c
+++ b/dll/win32/kernel32/client/vdm.c
@@ -105,7 +105,7 @@ BaseCheckVDM(IN ULONG BinaryType,
PWCHAR CurrentDir = NULL;
PWCHAR ShortAppName = NULL;
PWCHAR ShortCurrentDir = NULL;
- ULONG Length;
+ SIZE_T Length;
PCHAR AnsiCmdLine = NULL;
PCHAR AnsiAppName = NULL;
PCHAR AnsiCurDirectory = NULL;
@@ -283,16 +283,24 @@ BaseCheckVDM(IN ULONG BinaryType,
goto Cleanup;
}
+ /* Make sure that the command line isn't too long */
+ Length = wcslen(CommandLine);
+ if (Length > UNICODE_STRING_MAX_CHARS - 1)
+ {
+ Status = STATUS_INVALID_PARAMETER;
+ goto Cleanup;
+ }
+
/* Setup the input parameters */
CheckVdm->ConsoleHandle = NtCurrentPeb()->ProcessParameters->ConsoleHandle;
CheckVdm->BinaryType = BinaryType;
CheckVdm->CodePage = CP_ACP;
CheckVdm->dwCreationFlags = CreationFlags;
CheckVdm->CurDrive = CurrentDirectory[0] - L'A';
- CheckVdm->CmdLen = wcslen(CommandLine) + 1;
- CheckVdm->AppLen = wcslen(ShortAppName) + 1;
+ CheckVdm->CmdLen = (USHORT)Length + 1;
+ CheckVdm->AppLen = (USHORT)wcslen(ShortAppName) + 1;
CheckVdm->PifLen = 0; // TODO: PIF file support!
- CheckVdm->CurDirectoryLen = wcslen(ShortCurrentDir) + 1;
+ CheckVdm->CurDirectoryLen = (USHORT)wcslen(ShortCurrentDir) + 1;
CheckVdm->EnvLen = AnsiEnvironment->Length;
CheckVdm->DesktopLen = (StartupInfo->lpDesktop != NULL) ?
(wcslen(StartupInfo->lpDesktop) + 1) : 0;
CheckVdm->TitleLen = (StartupInfo->lpTitle != NULL) ?
(wcslen(StartupInfo->lpTitle) + 1) : 0;
diff --git a/dll/win32/lsasrv/lookup.c b/dll/win32/lsasrv/lookup.c
index f593f2b86ae..7d39169f0a4 100644
--- a/dll/win32/lsasrv/lookup.c
+++ b/dll/win32/lsasrv/lookup.c
@@ -96,9 +96,18 @@ LsapCreateSid(PSID_IDENTIFIER_AUTHORITY IdentifierAuthority,
PSID *SidPtr)
{
PWELL_KNOWN_SID SidEntry;
+ SIZE_T AccountNameLength, DomainNameLength;
PULONG p;
ULONG i;
+ AccountNameLength = wcslen(AccountName);
+ DomainNameLength = wcslen(DomainName);
+ if ((AccountNameLength > UNICODE_STRING_MAX_CHARS) ||
+ (DomainNameLength > UNICODE_STRING_MAX_CHARS))
+ {
+ return FALSE;
+ }
+
SidEntry = RtlAllocateHeap(RtlGetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(WELL_KNOWN_SID));
if (SidEntry == NULL)
return FALSE;
@@ -126,7 +135,7 @@ LsapCreateSid(PSID_IDENTIFIER_AUTHORITY IdentifierAuthority,
// RtlInitUnicodeString(&SidEntry->AccountName,
// AccountName);
- SidEntry->AccountName.Length = wcslen(AccountName) * sizeof(WCHAR);
+ SidEntry->AccountName.Length = (USHORT)AccountNameLength * sizeof(WCHAR);
SidEntry->AccountName.MaximumLength = SidEntry->AccountName.Length +
sizeof(WCHAR);
SidEntry->AccountName.Buffer = RtlAllocateHeap(RtlGetProcessHeap(), 0,
SidEntry->AccountName.MaximumLength);
@@ -142,7 +151,7 @@ LsapCreateSid(PSID_IDENTIFIER_AUTHORITY IdentifierAuthority,
// RtlInitUnicodeString(&SidEntry->DomainName,
// DomainName);
- SidEntry->DomainName.Length = wcslen(DomainName) * sizeof(WCHAR);
+ SidEntry->DomainName.Length = (USHORT)DomainNameLength * sizeof(WCHAR);
SidEntry->DomainName.MaximumLength = SidEntry->DomainName.Length +
sizeof(WCHAR);
SidEntry->DomainName.Buffer = RtlAllocateHeap(RtlGetProcessHeap(), 0,
SidEntry->DomainName.MaximumLength);
diff --git a/dll/win32/lsasrv/privileges.c b/dll/win32/lsasrv/privileges.c
index bb2b36f883f..5f6314481af 100644
--- a/dll/win32/lsasrv/privileges.c
+++ b/dll/win32/lsasrv/privileges.c
@@ -99,7 +99,7 @@ LsarpLookupPrivilegeName(PLUID Value,
if (NameBuffer == NULL)
return STATUS_NO_MEMORY;
- NameBuffer->Length = wcslen(WellKnownPrivileges[Priv].Name) *
sizeof(WCHAR);
+ NameBuffer->Length = (USHORT)wcslen(WellKnownPrivileges[Priv].Name) *
sizeof(WCHAR);
NameBuffer->MaximumLength = NameBuffer->Length + sizeof(WCHAR);
NameBuffer->Buffer = MIDL_user_allocate(NameBuffer->MaximumLength);
@@ -354,7 +354,7 @@ LsapLookupAccountRightName(ULONG RightValue,
if (NameBuffer == NULL)
return STATUS_NO_MEMORY;
- NameBuffer->Length = wcslen(WellKnownRights[i].Name) * sizeof(WCHAR);
+ NameBuffer->Length = (USHORT)wcslen(WellKnownRights[i].Name) *
sizeof(WCHAR);
NameBuffer->MaximumLength = NameBuffer->Length + sizeof(WCHAR);
NameBuffer->Buffer = MIDL_user_allocate(NameBuffer->MaximumLength);
diff --git a/dll/win32/msgina/gui.c b/dll/win32/msgina/gui.c
index 106a4ebcb96..e4f5abcc70f 100644
--- a/dll/win32/msgina/gui.c
+++ b/dll/win32/msgina/gui.c
@@ -580,7 +580,7 @@ DoChangePassword(
Ptr = (LPWSTR)((ULONG_PTR)RequestBuffer + sizeof(MSV1_0_CHANGEPASSWORD_REQUEST));
/* Pack the domain name */
- RequestBuffer->DomainName.Length = wcslen(Domain) * sizeof(WCHAR);
+ RequestBuffer->DomainName.Length = (USHORT)wcslen(Domain) * sizeof(WCHAR);
RequestBuffer->DomainName.MaximumLength = RequestBuffer->DomainName.Length +
sizeof(WCHAR);
RequestBuffer->DomainName.Buffer = Ptr;
@@ -591,7 +591,7 @@ DoChangePassword(
Ptr = (LPWSTR)((ULONG_PTR)Ptr + RequestBuffer->DomainName.MaximumLength);
/* Pack the user name */
- RequestBuffer->AccountName.Length = wcslen(UserName) * sizeof(WCHAR);
+ RequestBuffer->AccountName.Length = (USHORT)wcslen(UserName) * sizeof(WCHAR);
RequestBuffer->AccountName.MaximumLength = RequestBuffer->AccountName.Length +
sizeof(WCHAR);
RequestBuffer->AccountName.Buffer = Ptr;
@@ -602,7 +602,7 @@ DoChangePassword(
Ptr = (LPWSTR)((ULONG_PTR)Ptr + RequestBuffer->AccountName.MaximumLength);
/* Pack the old password */
- RequestBuffer->OldPassword.Length = wcslen(OldPassword) * sizeof(WCHAR);
+ RequestBuffer->OldPassword.Length = (USHORT)wcslen(OldPassword) * sizeof(WCHAR);
RequestBuffer->OldPassword.MaximumLength = RequestBuffer->OldPassword.Length +
sizeof(WCHAR);
RequestBuffer->OldPassword.Buffer = Ptr;
@@ -613,7 +613,7 @@ DoChangePassword(
Ptr = (LPWSTR)((ULONG_PTR)Ptr + RequestBuffer->OldPassword.MaximumLength);
/* Pack the new password */
- RequestBuffer->NewPassword.Length = wcslen(NewPassword1) * sizeof(WCHAR);
+ RequestBuffer->NewPassword.Length = (USHORT)wcslen(NewPassword1) * sizeof(WCHAR);
RequestBuffer->NewPassword.MaximumLength = RequestBuffer->NewPassword.Length +
sizeof(WCHAR);
RequestBuffer->NewPassword.Buffer = Ptr;
diff --git a/dll/win32/msv1_0/msv1_0.c b/dll/win32/msv1_0/msv1_0.c
index a6c9fd75225..2ab923213a3 100644
--- a/dll/win32/msv1_0/msv1_0.c
+++ b/dll/win32/msv1_0/msv1_0.c
@@ -102,18 +102,24 @@ BuildInteractiveProfileBuffer(IN PLSA_CLIENT_REQUEST ClientRequest,
PVOID ClientBaseAddress = NULL;
LPWSTR Ptr;
ULONG BufferLength;
+ USHORT ComputerNameLength;
NTSTATUS Status = STATUS_SUCCESS;
*ProfileBuffer = NULL;
*ProfileBufferLength = 0;
+ if (UIntPtrToUShort(wcslen(ComputerName), &ComputerNameLength) != S_OK)
+ {
+ return STATUS_INVALID_PARAMETER;
+ }
+
BufferLength = sizeof(MSV1_0_INTERACTIVE_PROFILE) +
UserInfo->All.FullName.Length + sizeof(WCHAR) +
UserInfo->All.HomeDirectory.Length + sizeof(WCHAR) +
UserInfo->All.HomeDirectoryDrive.Length + sizeof(WCHAR) +
UserInfo->All.ScriptPath.Length + sizeof(WCHAR) +
UserInfo->All.ProfilePath.Length + sizeof(WCHAR) +
- ((wcslen(ComputerName) + 3) * sizeof(WCHAR));
+ ((ComputerNameLength + 3) * sizeof(WCHAR));
LocalBuffer = DispatchTable.AllocateLsaHeap(BufferLength);
if (LocalBuffer == NULL)
@@ -204,7 +210,7 @@ BuildInteractiveProfileBuffer(IN PLSA_CLIENT_REQUEST ClientRequest,
Ptr = (LPWSTR)((ULONG_PTR)Ptr + LocalBuffer->HomeDirectoryDrive.MaximumLength);
- LocalBuffer->LogonServer.Length = (wcslen(ComputerName) + 2) * sizeof(WCHAR);
+ LocalBuffer->LogonServer.Length = (ComputerNameLength + 2) * sizeof(WCHAR);
LocalBuffer->LogonServer.MaximumLength = LocalBuffer->LogonServer.Length +
sizeof(WCHAR);
LocalBuffer->LogonServer.Buffer = (LPWSTR)((ULONG_PTR)ClientBaseAddress +
(ULONG_PTR)Ptr - (ULONG_PTR)LocalBuffer);
wcscpy(Ptr, L"\\");
diff --git a/dll/win32/msv1_0/precomp.h b/dll/win32/msv1_0/precomp.h
index 99aeda9d36e..462fb56a401 100644
--- a/dll/win32/msv1_0/precomp.h
+++ b/dll/win32/msv1_0/precomp.h
@@ -8,6 +8,7 @@
#include <windef.h>
#include <winbase.h>
#include <winreg.h>
+#include <intsafe.h>
#define NTOS_MODE_USER
#include <ndk/cmfuncs.h>
#include <ndk/kefuncs.h>
diff --git a/dll/win32/ntmarta/ntmarta.c b/dll/win32/ntmarta/ntmarta.c
index 7eea9a8302a..c519feabb94 100644
--- a/dll/win32/ntmarta/ntmarta.c
+++ b/dll/win32/ntmarta/ntmarta.c
@@ -403,12 +403,19 @@ AccpOpenLSAPolicyHandle(IN LPWSTR SystemName,
{
LSA_OBJECT_ATTRIBUTES LsaObjectAttributes = {0};
LSA_UNICODE_STRING LsaSystemName, *psn;
+ SIZE_T SystemNameLength;
NTSTATUS Status;
if (SystemName != NULL && SystemName[0] != L'\0')
{
+ SystemNameLength = wcslen(SystemName);
+ if (SystemNameLength > UNICODE_STRING_MAX_CHARS)
+ {
+ return ERROR_INVALID_PARAMETER;
+ }
+
LsaSystemName.Buffer = SystemName;
- LsaSystemName.Length = wcslen(SystemName) * sizeof(WCHAR);
+ LsaSystemName.Length = (USHORT)SystemNameLength * sizeof(WCHAR);
LsaSystemName.MaximumLength = LsaSystemName.Length + sizeof(WCHAR);
psn = &LsaSystemName;
}
@@ -498,10 +505,17 @@ AccpLookupSidByName(IN LSA_HANDLE PolicyHandle,
PLSA_REFERENCED_DOMAIN_LIST ReferencedDomains = NULL;
PLSA_TRANSLATED_SID2 TranslatedSid = NULL;
DWORD SidLen;
+ SIZE_T NameLength;
DWORD Ret = ERROR_SUCCESS;
+ NameLength = wcslen(Name);
+ if (NameLength > UNICODE_STRING_MAX_CHARS)
+ {
+ return ERROR_INVALID_PARAMETER;
+ }
+
LsaNames[0].Buffer = Name;
- LsaNames[0].Length = wcslen(Name) * sizeof(WCHAR);
+ LsaNames[0].Length = (USHORT)NameLength * sizeof(WCHAR);
LsaNames[0].MaximumLength = LsaNames[0].Length + sizeof(WCHAR);
Status = LsaLookupNames2(PolicyHandle,
diff --git a/dll/win32/shell32/CShellLink.cpp b/dll/win32/shell32/CShellLink.cpp
index cd5d74e2c3f..5fc8ab41867 100644
--- a/dll/win32/shell32/CShellLink.cpp
+++ b/dll/win32/shell32/CShellLink.cpp
@@ -784,16 +784,24 @@ HRESULT STDMETHODCALLTYPE CShellLink::Load(IStream *stm)
*/
static HRESULT Stream_WriteString(IStream* stm, LPCWSTR str)
{
- USHORT len = wcslen(str) + 1; // FIXME: Possible overflows?
+ SIZE_T length;
+ USHORT len;
DWORD count;
+ length = wcslen(str) + 1;
+ if (length > MAXUSHORT)
+ {
+ return E_INVALIDARG;
+ }
+
+ len = (USHORT)length;
HRESULT hr = stm->Write(&len, sizeof(len), &count);
if (FAILED(hr))
return hr;
- len *= sizeof(WCHAR);
+ length *= sizeof(WCHAR);
- hr = stm->Write(str, len, &count);
+ hr = stm->Write(str, (ULONG)length, &count);
if (FAILED(hr))
return hr;
diff --git a/dll/win32/shell32/folders/CPrinterFolder.cpp
b/dll/win32/shell32/folders/CPrinterFolder.cpp
index 83290cce1aa..0f437ea5cef 100644
--- a/dll/win32/shell32/folders/CPrinterFolder.cpp
+++ b/dll/win32/shell32/folders/CPrinterFolder.cpp
@@ -102,17 +102,25 @@ static LPITEMIDLIST _ILCreatePrinterItem(PRINTER_INFO_4W *pi)
PIDLPrinterStruct * p;
int size0 = (char*)&tmp.u.cprinter.szName - (char*)&tmp.u.cprinter;
int size = size0;
+ SIZE_T cchPrinterName, cchServerName;
+
+ cchPrinterName = wcslen(pi->pPrinterName);
+ cchServerName = wcslen(pi->pServerName);
+ if ((cchPrinterName + cchServerName) > (MAXUSHORT - 2))
+ {
+ return NULL;
+ }
tmp.type = 0x00;
tmp.u.cprinter.dummy = 0xFF;
if (pi->pPrinterName)
- tmp.u.cprinter.offsServer = wcslen(pi->pPrinterName) + 1;
+ tmp.u.cprinter.offsServer = cchPrinterName + 1;
else
tmp.u.cprinter.offsServer = 1;
size += tmp.u.cprinter.offsServer * sizeof(WCHAR);
if (pi->pServerName)
- size += (wcslen(pi->pServerName) + 1) * sizeof(WCHAR);
+ size += (cchServerName + 1) * sizeof(WCHAR);
else
size += sizeof(WCHAR);
diff --git a/dll/win32/syssetup/security.c b/dll/win32/syssetup/security.c
index 1a784edc5b5..bae8bf8660a 100644
--- a/dll/win32/syssetup/security.c
+++ b/dll/win32/syssetup/security.c
@@ -38,10 +38,20 @@ SetAccountsDomainSid(
SAM_HANDLE DomainHandle = NULL;
DOMAIN_NAME_INFORMATION DomainNameInfo;
+ SIZE_T DomainNameLength = 0;
NTSTATUS Status;
DPRINT("SYSSETUP: SetAccountsDomainSid\n");
+ if (DomainName != NULL)
+ {
+ DomainNameLength = wcslen(DomainName);
+ if (DomainNameLength > UNICODE_STRING_MAX_CHARS)
+ {
+ return STATUS_INVALID_PARAMETER;
+ }
+ }
+
memset(&ObjectAttributes, 0, sizeof(LSA_OBJECT_ATTRIBUTES));
ObjectAttributes.Length = sizeof(LSA_OBJECT_ATTRIBUTES);
@@ -69,7 +79,7 @@ SetAccountsDomainSid(
else
{
Info.DomainName.Buffer = (LPWSTR)DomainName;
- Info.DomainName.Length = wcslen(DomainName) * sizeof(WCHAR);
+ Info.DomainName.Length = DomainNameLength * sizeof(WCHAR);
Info.DomainName.MaximumLength = Info.DomainName.Length + sizeof(WCHAR);
}
@@ -81,7 +91,7 @@ SetAccountsDomainSid(
else
{
Info.DomainName.Buffer = (LPWSTR)DomainName;
- Info.DomainName.Length = wcslen(DomainName) * sizeof(WCHAR);
+ Info.DomainName.Length = DomainNameLength * sizeof(WCHAR);
Info.DomainName.MaximumLength = Info.DomainName.Length + sizeof(WCHAR);
Info.DomainSid = DomainSid;
}
@@ -99,7 +109,7 @@ SetAccountsDomainSid(
LsaClose(PolicyHandle);
- DomainNameInfo.DomainName.Length = wcslen(DomainName) * sizeof(WCHAR);
+ DomainNameInfo.DomainName.Length = DomainNameLength * sizeof(WCHAR);
DomainNameInfo.DomainName.MaximumLength = DomainNameInfo.DomainName.Length +
sizeof(WCHAR);
DomainNameInfo.DomainName.Buffer = (LPWSTR)DomainName;
@@ -147,10 +157,20 @@ SetPrimaryDomain(LPCWSTR DomainName,
POLICY_PRIMARY_DOMAIN_INFO Info;
LSA_OBJECT_ATTRIBUTES ObjectAttributes;
LSA_HANDLE PolicyHandle;
+ SIZE_T DomainNameLength = 0;
NTSTATUS Status;
DPRINT1("SYSSETUP: SetPrimaryDomain()\n");
+ if (DomainName != NULL)
+ {
+ DomainNameLength = wcslen(DomainName);
+ if (DomainNameLength > UNICODE_STRING_MAX_CHARS)
+ {
+ return STATUS_INVALID_PARAMETER;
+ }
+ }
+
memset(&ObjectAttributes, 0, sizeof(LSA_OBJECT_ATTRIBUTES));
ObjectAttributes.Length = sizeof(LSA_OBJECT_ATTRIBUTES);
@@ -178,7 +198,7 @@ SetPrimaryDomain(LPCWSTR DomainName,
else
{
Info.Name.Buffer = (LPWSTR)DomainName;
- Info.Name.Length = wcslen(DomainName) * sizeof(WCHAR);
+ Info.Name.Length = DomainNameLength * sizeof(WCHAR);
Info.Name.MaximumLength = Info.Name.Length + sizeof(WCHAR);
}
@@ -190,7 +210,7 @@ SetPrimaryDomain(LPCWSTR DomainName,
else
{
Info.Name.Buffer = (LPWSTR)DomainName;
- Info.Name.Length = wcslen(DomainName) * sizeof(WCHAR);
+ Info.Name.Length = DomainNameLength * sizeof(WCHAR);
Info.Name.MaximumLength = Info.Name.Length + sizeof(WCHAR);
Info.Sid = DomainSid;
}
@@ -1251,6 +1271,8 @@ SetNewAccountName(
if (dwLength == 0)
return;
+ ASSERT(dwLength <= UNICODE_STRING_MAX_CHARS);
+
pszName = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwLength * sizeof(WCHAR));
if (pszName == NULL)
{
@@ -1280,7 +1302,7 @@ SetNewAccountName(
goto done;
}
- NameInfo.UserName.Length = wcslen(pszName) * sizeof(WCHAR);
+ NameInfo.UserName.Length = (USHORT)wcslen(pszName) * sizeof(WCHAR);
NameInfo.UserName.MaximumLength = NameInfo.UserName.Length + sizeof(WCHAR);
NameInfo.UserName.Buffer = pszName;
NameInfo.FullName.Length = 0;
diff --git a/drivers/filesystems/fastfat_new/fatstruc.h
b/drivers/filesystems/fastfat_new/fatstruc.h
index ccf6572d0b0..d12721febbe 100644
--- a/drivers/filesystems/fastfat_new/fatstruc.h
+++ b/drivers/filesystems/fastfat_new/fatstruc.h
@@ -20,6 +20,7 @@ Abstract:
typedef PVOID PBCB; //**** Bcb's are now part of the cache module
#ifdef __REACTOS__
+#undef __volatile
#define __volatile volatile
#endif
diff --git a/drivers/filesystems/npfs/main.c b/drivers/filesystems/npfs/main.c
index 7aeff7767a0..13b94bada0d 100644
--- a/drivers/filesystems/npfs/main.c
+++ b/drivers/filesystems/npfs/main.c
@@ -42,7 +42,7 @@ NpReadAlias(
{
PNPFS_QUERY_VALUE_CONTEXT QueryContext = Context;
PWSTR CurrentString;
- USHORT Length;
+ SIZE_T Length;
PNPFS_ALIAS CurrentAlias;
UNICODE_STRING TempString;
PUNICODE_STRING CurrentTargetName;
diff --git a/drivers/input/kbdclass/kbdclass.c b/drivers/input/kbdclass/kbdclass.c
index 8ed1b68f5c8..86f354c3240 100644
--- a/drivers/input/kbdclass/kbdclass.c
+++ b/drivers/input/kbdclass/kbdclass.c
@@ -4,7 +4,7 @@
* FILE: drivers/kbdclass/kbdclass.c
* PURPOSE: Keyboard class driver
*
- * PROGRAMMERS: Herv� Poussineau (hpoussin(a)reactos.org)
+ * PROGRAMMERS: Hervé Poussineau (hpoussin(a)reactos.org)
*/
#include "kbdclass.h"
@@ -321,7 +321,7 @@ CreateClassDeviceObject(
DriverExtension = IoGetDriverObjectExtension(DriverObject, DriverObject);
DeviceNameU.Length = 0;
DeviceNameU.MaximumLength =
- wcslen(L"\\Device\\") * sizeof(WCHAR) /* "\Device\" */
+ (USHORT)wcslen(L"\\Device\\") * sizeof(WCHAR) /* "\Device\" */
+ DriverExtension->DeviceBaseName.Length /* "KeyboardClass" */
+ 4 * sizeof(WCHAR) /* Id between 0 and 9999 */
+ sizeof(UNICODE_NULL); /* Final NULL char */
diff --git a/drivers/input/mouclass/mouclass.c b/drivers/input/mouclass/mouclass.c
index c12ecd5dd65..dc694b4f9c3 100644
--- a/drivers/input/mouclass/mouclass.c
+++ b/drivers/input/mouclass/mouclass.c
@@ -4,7 +4,7 @@
* FILE: drivers/mouclass/mouclass.c
* PURPOSE: Mouse class driver
*
- * PROGRAMMERS: Herv� Poussineau (hpoussin(a)reactos.org)
+ * PROGRAMMERS: Hervé Poussineau (hpoussin(a)reactos.org)
*/
#include "mouclass.h"
@@ -297,7 +297,7 @@ CreateClassDeviceObject(
DriverExtension = IoGetDriverObjectExtension(DriverObject, DriverObject);
DeviceNameU.Length = 0;
DeviceNameU.MaximumLength =
- wcslen(L"\\Device\\") * sizeof(WCHAR) /* "\Device\" */
+ (USHORT)wcslen(L"\\Device\\") * sizeof(WCHAR) /* "\Device\" */
+ DriverExtension->DeviceBaseName.Length /* "PointerClass" */
+ 4 * sizeof(WCHAR) /* Id between 0 and 9999 */
+ sizeof(UNICODE_NULL); /* Final NULL char */
diff --git a/drivers/storage/floppy/floppy/ioctl.c
b/drivers/storage/floppy/floppy/ioctl.c
index e6073a95299..11875e51838 100644
--- a/drivers/storage/floppy/floppy/ioctl.c
+++ b/drivers/storage/floppy/floppy/ioctl.c
@@ -266,7 +266,7 @@ DeviceIoctlPassive(PDRIVE_INFO DriveInfo, PIRP Irp)
}
UniqueId = Irp->AssociatedIrp.SystemBuffer;
- UniqueId->UniqueIdLength = wcslen(&DriveInfo->DeviceNameBuffer[0]) *
sizeof(WCHAR);
+ UniqueId->UniqueIdLength =
(USHORT)wcslen(&DriveInfo->DeviceNameBuffer[0]) * sizeof(WCHAR);
if(OutputLength < FIELD_OFFSET(MOUNTDEV_UNIQUE_ID, UniqueId) +
UniqueId->UniqueIdLength)
{
@@ -291,7 +291,7 @@ DeviceIoctlPassive(PDRIVE_INFO DriveInfo, PIRP Irp)
}
Name = Irp->AssociatedIrp.SystemBuffer;
- Name->NameLength = wcslen(&DriveInfo->DeviceNameBuffer[0]) *
sizeof(WCHAR);
+ Name->NameLength = (USHORT)wcslen(&DriveInfo->DeviceNameBuffer[0]) *
sizeof(WCHAR);
if(OutputLength < FIELD_OFFSET(MOUNTDEV_NAME, Name) + Name->NameLength)
{
diff --git a/modules/rosapps/applications/explorer-old/shell/ntobjfs.cpp
b/modules/rosapps/applications/explorer-old/shell/ntobjfs.cpp
index ee6fd12d25d..fa75e065d6f 100644
--- a/modules/rosapps/applications/explorer-old/shell/ntobjfs.cpp
+++ b/modules/rosapps/applications/explorer-old/shell/ntobjfs.cpp
@@ -140,7 +140,7 @@ struct UnicodeString : public RtlUnicodeString {
UnicodeString(size_t len, LPWSTR buffer)
{
- alloc_len = len;
+ alloc_len = (WORD)len;
string_ptr = buffer;
}
diff --git a/modules/rosapps/applications/fraginator/Unfrag.cpp
b/modules/rosapps/applications/fraginator/Unfrag.cpp
index 0675021501b..4ea5a97f9e1 100644
--- a/modules/rosapps/applications/fraginator/Unfrag.cpp
+++ b/modules/rosapps/applications/fraginator/Unfrag.cpp
@@ -233,7 +233,7 @@ extern "C" int wmain (int argc, wchar_t **argv)
// Now set back to the beginning
ScreenInfo.dwCursorPosition.X = 0;
- ScreenInfo.dwCursorPosition.Y -= Drives.size();
+ ScreenInfo.dwCursorPosition.Y -= (USHORT)Drives.size();
SetConsoleCursorPosition (Screen, ScreenInfo.dwCursorPosition);
for (size_t d = 0; d < Drives.size (); d++)
diff --git a/modules/rosapps/applications/net/netreg/netreg.cpp
b/modules/rosapps/applications/net/netreg/netreg.cpp
index 35f0221698e..38145870194 100644
--- a/modules/rosapps/applications/net/netreg/netreg.cpp
+++ b/modules/rosapps/applications/net/netreg/netreg.cpp
@@ -182,10 +182,10 @@ private:
}
string present_value( DWORD type, const char *data, DWORD len ) {
- switch( type ) {
- default:
+ //switch( type ) {
+ //default:
return bindump( data, len );
- }
+ //}
}
void process_valid_request( HKEY open_reg_key, string key_name ) {
diff --git a/modules/rosapps/applications/net/roshttpd/include/httpd.h
b/modules/rosapps/applications/net/roshttpd/include/httpd.h
index ff85940c837..41a273f73ee 100644
--- a/modules/rosapps/applications/net/roshttpd/include/httpd.h
+++ b/modules/rosapps/applications/net/roshttpd/include/httpd.h
@@ -67,7 +67,7 @@ public:
virtual BOOL Stop();
virtual LPCServerClientSocket OnGetSocket(LPCServerSocket lpServerSocket);
virtual LPCServerClientThread OnGetThread(LPCServerClientSocket Socket);
- virtual void OnAccept(const LPCServerClientThread lpThread);
+ virtual void OnAccept(LPCServerClientThread lpThread);
private:
HTTPdState State;
};
diff --git a/modules/rosapps/applications/notevil/notevil.c
b/modules/rosapps/applications/notevil/notevil.c
index 8c9cdce4cd6..1859d936cb1 100644
--- a/modules/rosapps/applications/notevil/notevil.c
+++ b/modules/rosapps/applications/notevil/notevil.c
@@ -44,25 +44,25 @@ WriteStringAt(LPWSTR lpString,
WORD wColor)
{
DWORD cWritten = 0;
- WORD wLen;
+ DWORD dwLen;
if (!lpString || *lpString == 0) return;
- wLen = wcslen(lpString);
+ dwLen = (DWORD)wcslen(lpString);
/* Don't bother writing text when erasing */
if (wColor)
{
WriteConsoleOutputCharacterW(ScreenBuffer,
lpString,
- wLen,
+ dwLen,
xy,
&cWritten);
}
FillConsoleOutputAttribute(ScreenBuffer,
wColor,
- wLen,
+ dwLen,
xy,
&cWritten);
}
@@ -103,7 +103,7 @@ DisplayTitle(VOID)
LPWSTR szTitle = L"ReactOS Coders Console Parade";
COORD xy;
- xy.X = (ScreenBufferInfo.dwSize.X - wcslen(szTitle)) / 2;
+ xy.X = (ScreenBufferInfo.dwSize.X - (USHORT)wcslen(szTitle)) / 2;
xy.Y = ScreenBufferInfo.dwSize.Y / 2;
WriteStringAt(szTitle, xy,
diff --git a/modules/rosapps/applications/screensavers/cylfrac/cylfrac.c
b/modules/rosapps/applications/screensavers/cylfrac/cylfrac.c
index be0bb417d24..d2f2326a425 100644
--- a/modules/rosapps/applications/screensavers/cylfrac/cylfrac.c
+++ b/modules/rosapps/applications/screensavers/cylfrac/cylfrac.c
@@ -106,8 +106,8 @@ void DrawScene(HWND hwnd, HDC dc, int ticks)
angle += ticks * 0.01;
colorh += ticks * 0.003;
if (colorh > 360.0) colorh -= 360.0;
- HLStoRGB(colorh, 1.0, 0.7, &rval, &gval, &bval);
- DrawCylinder(lvls, angle, 0.2);
+ HLStoRGB(colorh, 1.0f, 0.7f, &rval, &gval, &bval);
+ DrawCylinder(lvls, angle, 0.2f);
SwapBuffers(dc);
EndPaint(hwnd, &ps);
}
@@ -134,7 +134,7 @@ void MyPixelFormat(HDC dc)
void InitGL(HWND hwnd)
{
- GLfloat lightpos[4] = {2.0, 2.0, -2.0, 0.7};
+ GLfloat lightpos[4] = {2.0f, 2.0f, -2.0f, 0.7f};
GLfloat ca = 1.0;
dc = GetDC(hwnd);
MyPixelFormat(dc);
diff --git a/modules/rostests/apitests/atl/SubclassWindow.cpp
b/modules/rostests/apitests/atl/SubclassWindow.cpp
index 14b114ea44d..51a99053a4f 100644
--- a/modules/rostests/apitests/atl/SubclassWindow.cpp
+++ b/modules/rostests/apitests/atl/SubclassWindow.cpp
@@ -8,6 +8,7 @@
#ifdef HAVE_APITEST
#include <apitest.h>
#define ATLASSUME(x) /*empty*/
+ #undef ATLASSERT
#define ATLASSERT(x) /*empty*/
#else
#include "atltest.h"
diff --git a/sdk/include/ddk/acpiioct.h b/sdk/include/ddk/acpiioct.h
index c5bb6d6294e..cb10a4dbf20 100644
--- a/sdk/include/ddk/acpiioct.h
+++ b/sdk/include/ddk/acpiioct.h
@@ -159,7 +159,7 @@ typedef ACPI_ENUM_CHILDREN_OUTPUT_BUFFER UNALIGNED
*PACPI_ENUM_CHILDREN_OUTPUT_B
#define ACPI_METHOD_SET_ARGUMENT_STRING( Argument, StrData ) \
{ Argument->Type = ACPI_METHOD_ARGUMENT_STRING; \
- Argument->DataLength = strlen((PCHAR)StrData) + sizeof(UCHAR); \
+ Argument->DataLength = (USHORT)strlen((PCHAR)StrData) + sizeof(UCHAR); \
RtlCopyMemory(&Argument->Data[0],(PUCHAR)StrData,Argument->DataLength); }
#define ACPI_METHOD_SET_ARGUMENT_BUFFER( Argument, BuffData, BuffLength ) \
diff --git a/sdk/include/psdk/intsafe.h b/sdk/include/psdk/intsafe.h
index 6404ed33663..6e78f6b0e89 100644
--- a/sdk/include/psdk/intsafe.h
+++ b/sdk/include/psdk/intsafe.h
@@ -46,9 +46,11 @@ typedef _Return_type_success_(return >= 0) long NTSTATUS;
#ifndef _HRESULT_DEFINED
typedef _Return_type_success_(return >= 0) long HRESULT;
#endif
+#ifndef SUCCEEDED
#define SUCCEEDED(hr) (((HRESULT)(hr)) >= 0)
#define FAILED(hr) (((HRESULT)(hr)) < 0)
#define S_OK ((HRESULT)0L)
+#endif
#define INTSAFE_RESULT HRESULT
#define INTSAFE_SUCCESS S_OK
#define INTSAFE_E_ARITHMETIC_OVERFLOW ((HRESULT)0x80070216L)
diff --git a/sdk/lib/crt/string/wtoi64.c b/sdk/lib/crt/string/wtoi64.c
index 15a4bae0225..59409933c95 100644
--- a/sdk/lib/crt/string/wtoi64.c
+++ b/sdk/lib/crt/string/wtoi64.c
@@ -6,7 +6,7 @@
*/
__int64 CDECL _wtoi64_l(const wchar_t *str, _locale_t locale)
{
- ULONGLONG RunningTotal = 0;
+ LONGLONG RunningTotal = 0;
BOOL bMinus = FALSE;
while (iswctype((int)*str, _SPACE)) {
@@ -191,7 +191,7 @@ unsigned __int64 CDECL _wcstoui64_l(const wchar_t *nptr,
if(endptr)
*endptr = (wchar_t*)nptr;
- return negative ? -ret : ret;
+ return negative ? -(__int64)ret : ret;
}
/*********************************************************************
diff --git a/sdk/lib/drivers/ip/network/loopback.c
b/sdk/lib/drivers/ip/network/loopback.c
index c859ac7d2a8..815abebb05b 100644
--- a/sdk/lib/drivers/ip/network/loopback.c
+++ b/sdk/lib/drivers/ip/network/loopback.c
@@ -124,7 +124,7 @@ NDIS_STATUS LoopRegisterAdapter(
Loopback->Name.Buffer = L"Loopback";
Loopback->Name.MaximumLength = Loopback->Name.Length =
- wcslen(Loopback->Name.Buffer) * sizeof(WCHAR);
+ (USHORT)wcslen(Loopback->Name.Buffer) * sizeof(WCHAR);
AddrInitIPv4(&Loopback->Unicast, LOOPBACK_ADDRESS_IPv4);
AddrInitIPv4(&Loopback->Netmask, LOOPBACK_ADDRMASK_IPv4);
diff --git a/subsystems/mvdm/ntvdm/dos/dem.c b/subsystems/mvdm/ntvdm/dos/dem.c
index d1edc10d2fe..dcb78174d06 100644
--- a/subsystems/mvdm/ntvdm/dos/dem.c
+++ b/subsystems/mvdm/ntvdm/dos/dem.c
@@ -1131,7 +1131,7 @@ static VOID WINAPI DosInitialize(LPWORD Stack)
/* Get the DOS BIOS file name (NULL-terminated) */
// FIXME: Isn't it possible to use some DS:SI instead??
LPCSTR DosBiosFileName = (LPCSTR)SEG_OFF_TO_PTR(getCS(), getIP());
- setIP(getIP() + strlen(DosBiosFileName) + 1); // Skip it
+ setIP(getIP() + (USHORT)strlen(DosBiosFileName) + 1); // Skip it
DPRINT("DosInitialize('%s')\n", DosBiosFileName);
diff --git a/win32ss/printing/providers/localspl/tools.c
b/win32ss/printing/providers/localspl/tools.c
index 764877d664e..e5920721719 100644
--- a/win32ss/printing/providers/localspl/tools.c
+++ b/win32ss/printing/providers/localspl/tools.c
@@ -109,7 +109,7 @@ LONG copy_servername_from_name(LPCWSTR name, LPWSTR target)
FIXME("found %s\n", debugstr_wn(server, serverlen));
- if (serverlen > MAX_COMPUTERNAME_LENGTH) return -serverlen;
+ if (serverlen > MAX_COMPUTERNAME_LENGTH) return -(LONG)serverlen;
if (target)
{
diff --git a/win32ss/user/user32/windows/class.c b/win32ss/user/user32/windows/class.c
index 0acf11b4b40..3602c2c1d72 100644
--- a/win32ss/user/user32/windows/class.c
+++ b/win32ss/user/user32/windows/class.c
@@ -111,7 +111,7 @@ ClassNameToVersion(
ERR("Couldn't get atom name for atom %x !\n",
LOWORD((DWORD_PTR)lpszClass));
return NULL;
}
- SectionName.Length = wcslen(SectionNameBuf) * sizeof(WCHAR);
+ SectionName.Length = (USHORT)wcslen(SectionNameBuf) * sizeof(WCHAR);
TRACE("ClassNameToVersion got name %wZ from atom\n",
&SectionName);
}
else