mirror of
https://github.com/reactos/reactos.git
synced 2024-08-03 10:00:56 +00:00
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:
parent
138dcb0ad3
commit
0c9ebe37a0
|
@ -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*/
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in a new issue