[PATCH 09/11] dbghelp: improved error handling in SymSetContext()
Eric Pouech
eric.pouech at gmail.com
Tue Oct 19 08:51:43 CDT 2021
Signed-off-by: Eric Pouech <eric.pouech at gmail.com>
---
dlls/dbghelp/dbghelp.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/dlls/dbghelp/dbghelp.c b/dlls/dbghelp/dbghelp.c
index 585fc9cada5..00f02423fef 100644
--- a/dlls/dbghelp/dbghelp.c
+++ b/dlls/dbghelp/dbghelp.c
@@ -609,6 +609,8 @@ BOOL WINAPI SymSetContext(HANDLE hProcess, PIMAGEHLP_STACK_FRAME StackFrame,
struct process* pcs = process_find_by_handle(hProcess);
if (!pcs) return FALSE;
+ if (!module_find_by_addr(pcs, StackFrame->InstructionOffset, DMT_UNKNOWN))
+ return FALSE;
if (pcs->ctx_frame.ReturnOffset == StackFrame->ReturnOffset &&
pcs->ctx_frame.FrameOffset == StackFrame->FrameOffset &&
pcs->ctx_frame.StackOffset == StackFrame->StackOffset)
@@ -618,12 +620,12 @@ BOOL WINAPI SymSetContext(HANDLE hProcess, PIMAGEHLP_STACK_FRAME StackFrame,
pcs->ctx_frame.FrameOffset,
pcs->ctx_frame.StackOffset);
pcs->ctx_frame.InstructionOffset = StackFrame->InstructionOffset;
- SetLastError(ERROR_ACCESS_DENIED); /* latest MSDN says ERROR_SUCCESS */
+ SetLastError(ERROR_SUCCESS);
return FALSE;
}
pcs->ctx_frame = *StackFrame;
- /* MSDN states that Context is not (no longer?) used */
+ /* Context is not (no longer?) used */
return TRUE;
}
More information about the wine-devel
mailing list