dbghelp: SymSetContext should return FALSE when setting twice the same

frame context.
This commit is contained in:
Eric Pouech 2006-01-23 16:30:25 +01:00 committed by Alexandre Julliard
parent eca3715f88
commit e5d09bf374
1 changed files with 12 additions and 0 deletions

View File

@ -338,6 +338,18 @@ BOOL WINAPI SymSetContext(HANDLE hProcess, PIMAGEHLP_STACK_FRAME StackFrame,
struct process* pcs = process_find_by_handle(hProcess);
if (!pcs) return FALSE;
if (pcs->ctx_frame.ReturnOffset == StackFrame->ReturnOffset &&
pcs->ctx_frame.FrameOffset == StackFrame->FrameOffset &&
pcs->ctx_frame.StackOffset == StackFrame->StackOffset)
{
TRACE("Setting same frame {rtn=%s frm=%s stk=%s}\n",
wine_dbgstr_longlong(pcs->ctx_frame.ReturnOffset),
wine_dbgstr_longlong(pcs->ctx_frame.FrameOffset),
wine_dbgstr_longlong(pcs->ctx_frame.StackOffset));
SetLastError(ERROR_ACCESS_DENIED); /* latest MSDN says ERROR_SUCCESS */
return FALSE;
}
pcs->ctx_frame = *StackFrame;
/* MSDN states that Context is not (no longer?) used */
return TRUE;