mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-01 12:23:29 +00:00
Fix returning the context of the current thread in NtGetContextThread
svn path=/trunk/; revision=24580
This commit is contained in:
@@ -174,8 +174,7 @@ PsGetContextThread(IN PETHREAD Thread,
|
||||
Size = sizeof(CONTEXT);
|
||||
|
||||
/* Read the flags */
|
||||
ProbeForReadUlong(&ThreadContext->ContextFlags);
|
||||
Flags = ThreadContext->ContextFlags;
|
||||
Flags = ProbeForReadUlong(&ThreadContext->ContextFlags);
|
||||
|
||||
/* Check if the caller wanted extended registers */
|
||||
if ((Flags & CONTEXT_EXTENDED_REGISTERS) !=
|
||||
@@ -256,11 +255,19 @@ PsGetContextThread(IN PETHREAD Thread,
|
||||
FALSE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
/* Copy the context */
|
||||
RtlMoveMemory(ThreadContext, &GetSetContext.Context, Size);
|
||||
}
|
||||
|
||||
_SEH_TRY
|
||||
{
|
||||
/* Copy the context */
|
||||
RtlCopyMemory(ThreadContext, &GetSetContext.Context, Size);
|
||||
}
|
||||
_SEH_HANDLE
|
||||
{
|
||||
Status = _SEH_GetExceptionCode();
|
||||
}
|
||||
_SEH_END;
|
||||
|
||||
/* Return status */
|
||||
return Status;
|
||||
}
|
||||
@@ -285,8 +292,7 @@ PsSetContextThread(IN PETHREAD Thread,
|
||||
Size = sizeof(CONTEXT);
|
||||
|
||||
/* Read the flags */
|
||||
ProbeForReadUlong(&ThreadContext->ContextFlags);
|
||||
Flags = ThreadContext->ContextFlags;
|
||||
Flags = ProbeForReadUlong(&ThreadContext->ContextFlags);
|
||||
|
||||
/* Check if the caller wanted extended registers */
|
||||
if ((Flags & CONTEXT_EXTENDED_REGISTERS) !=
|
||||
@@ -304,7 +310,7 @@ PsSetContextThread(IN PETHREAD Thread,
|
||||
}
|
||||
|
||||
/* Copy the context */
|
||||
RtlMoveMemory(&GetSetContext.Context, ThreadContext, Size);
|
||||
RtlCopyMemory(&GetSetContext.Context, ThreadContext, Size);
|
||||
}
|
||||
_SEH_HANDLE
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user