modified include/reactos/probe.h

modified   ntoskrnl/ex/harderr.c
modified   ntoskrnl/ex/sysinfo.c
modified   ntoskrnl/ob/oblife.c
   PSEH can't make code exception-safe (yet). Add explicit "volatile"s where it might be necessary

svn path=/trunk/; revision=38621
This commit is contained in:
KJK::Hyperion 2009-01-07 09:54:13 +00:00
parent 138dcb0ad3
commit 0c9ebe37a0
4 changed files with 11 additions and 10 deletions

View file

@ -152,7 +152,7 @@ ProbeAndCaptureUnicodeString(OUT PUNICODE_STRING Dest,
IN const UNICODE_STRING *UnsafeSrc)
{
NTSTATUS Status = STATUS_SUCCESS;
WCHAR *Buffer = NULL;
WCHAR * volatile Buffer = NULL;
ASSERT(Dest != NULL);
/* Probe the structure and buffer*/

View file

@ -529,7 +529,7 @@ NtRaiseHardError(IN NTSTATUS ErrorStatus,
OUT PULONG Response)
{
NTSTATUS Status = STATUS_SUCCESS;
PULONG_PTR SafeParams = NULL;
volatile PULONG_PTR SafeParams = NULL;
ULONG SafeResponse;
UNICODE_STRING SafeString;
ULONG i;

View file

@ -225,7 +225,7 @@ NtQuerySystemEnvironmentValue(IN PUNICODE_STRING VariableName,
UNICODE_STRING WName;
ARC_STATUS Result;
PCH Value;
ANSI_STRING AValue;
volatile ANSI_STRING AValue;
UNICODE_STRING WValue;
KPROCESSOR_MODE PreviousMode;
NTSTATUS Status = STATUS_SUCCESS;
@ -703,11 +703,12 @@ QSI_DEF(SystemProcessInformation)
{
PSYSTEM_PROCESS_INFORMATION SpiCurrent;
PSYSTEM_THREAD_INFORMATION ThreadInfo;
PEPROCESS Process = NULL, SystemProcess;
volatile PEPROCESS Process = NULL;
PEPROCESS SystemProcess;
PETHREAD CurrentThread;
ANSI_STRING ImageName;
int CurrentSize, ImageNameLength = 32; // image name len in bytes
PLIST_ENTRY CurrentEntry;
PLIST_ENTRY CurrentEntry;
ULONG TotalSize = 0, ThreadsCount;
ULONG TotalUser, TotalKernel;
PUCHAR Current;

View file

@ -360,7 +360,7 @@ ObpCaptureObjectName(IN OUT PUNICODE_STRING CapturedName,
{
NTSTATUS Status = STATUS_SUCCESS;
ULONG StringLength;
PWCHAR StringBuffer = NULL;
volatile PWCHAR StringBuffer = NULL;
UNICODE_STRING LocalName;
PAGED_CODE();
@ -440,7 +440,7 @@ ObpCaptureObjectCreateInformation(IN POBJECT_ATTRIBUTES ObjectAttributes,
NTSTATUS Status = STATUS_SUCCESS;
PSECURITY_DESCRIPTOR SecurityDescriptor;
PSECURITY_QUALITY_OF_SERVICE SecurityQos;
PUNICODE_STRING LocalObjectName = NULL;
volatile PUNICODE_STRING LocalObjectName = NULL;
PAGED_CODE();
/* Zero out the Capture Data */
@ -1258,14 +1258,14 @@ ObpDeleteObjectType(IN PVOID Object)
{
ULONG i;
POBJECT_TYPE ObjectType = (PVOID)Object;
/* Loop our locks */
for (i = 0; i < 4; i++)
{
/* Delete each one */
ExDeleteResourceLite(&ObjectType->ObjectLocks[i]);
}
/* Delete our main mutex */
ExDeleteResourceLite(&ObjectType->Mutex);
}
@ -1413,7 +1413,7 @@ NtQueryObject(IN HANDLE ObjectHandle,
POBJECT_HANDLE_ATTRIBUTE_INFORMATION HandleFlags;
POBJECT_BASIC_INFORMATION BasicInfo;
ULONG InfoLength;
PVOID Object = NULL;
volatile PVOID Object = NULL;
NTSTATUS Status = STATUS_SUCCESS;
KPROCESSOR_MODE PreviousMode = ExGetPreviousMode();
PAGED_CODE();