mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-06 13:58:40 +00:00
rdi_from_pdb: fix incorrect bounds checks on procedure frameproc lookup for local location info
This commit is contained in:
@@ -52,7 +52,7 @@ typedef int64_t RDI_S64;
|
|||||||
|
|
||||||
// \"raddbg\0\0\"
|
// \"raddbg\0\0\"
|
||||||
#define RDI_MAGIC_CONSTANT 0x0000676264646172
|
#define RDI_MAGIC_CONSTANT 0x0000676264646172
|
||||||
#define RDI_ENCODING_VERSION 6
|
#define RDI_ENCODING_VERSION 7
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////
|
||||||
//~ Format Types & Functions
|
//~ Format Types & Functions
|
||||||
|
|||||||
@@ -62,7 +62,7 @@
|
|||||||
"";
|
"";
|
||||||
"// \"raddbg\0\0\"";
|
"// \"raddbg\0\0\"";
|
||||||
"#define RDI_MAGIC_CONSTANT 0x0000676264646172";
|
"#define RDI_MAGIC_CONSTANT 0x0000676264646172";
|
||||||
"#define RDI_ENCODING_VERSION 6";
|
"#define RDI_ENCODING_VERSION 7";
|
||||||
"";
|
"";
|
||||||
"////////////////////////////////////////////////////////////////";
|
"////////////////////////////////////////////////////////////////";
|
||||||
"//~ Format Types & Functions";
|
"//~ Format Types & Functions";
|
||||||
|
|||||||
@@ -2696,7 +2696,7 @@ internal TS_TASK_FUNCTION_DEF(p2r_symbol_stream_convert_task__entry_point)
|
|||||||
|
|
||||||
// rjf: find current procedure's frameproc
|
// rjf: find current procedure's frameproc
|
||||||
CV_SymFrameproc *frameproc = 0;
|
CV_SymFrameproc *frameproc = 0;
|
||||||
if(procedure_num != 0 && procedure_frameprocs[procedure_num-1] != 0 && procedure_num < procedure_frameprocs_count)
|
if(procedure_num != 0 && procedure_num <= procedure_frameprocs_count && procedure_frameprocs[procedure_num-1] != 0)
|
||||||
{
|
{
|
||||||
frameproc = procedure_frameprocs[procedure_num-1];
|
frameproc = procedure_frameprocs[procedure_num-1];
|
||||||
}
|
}
|
||||||
@@ -2774,7 +2774,7 @@ internal TS_TASK_FUNCTION_DEF(p2r_symbol_stream_convert_task__entry_point)
|
|||||||
|
|
||||||
// rjf: find current procedure's frameproc
|
// rjf: find current procedure's frameproc
|
||||||
CV_SymFrameproc *frameproc = 0;
|
CV_SymFrameproc *frameproc = 0;
|
||||||
if(procedure_num != 0 && procedure_frameprocs[procedure_num-1] != 0 && procedure_num < procedure_frameprocs_count)
|
if(procedure_num != 0 && procedure_num <= procedure_frameprocs_count && procedure_frameprocs[procedure_num-1] != 0)
|
||||||
{
|
{
|
||||||
frameproc = procedure_frameprocs[procedure_num-1];
|
frameproc = procedure_frameprocs[procedure_num-1];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user