mirror of
https://github.com/radareorg/radare2.git
synced 2025-02-09 07:42:25 +00:00
fixes for jmptbl
This commit is contained in:
parent
ca26ad47da
commit
061c0acbab
@ -649,17 +649,19 @@ repeat:
|
||||
RAnalRef *last_ref = fcn->refs->tail->data;
|
||||
last_ref->type = R_ANAL_REF_TYPE_NULL;
|
||||
}
|
||||
|
||||
if (op.ptr != UT64_MAX) { // direct jump
|
||||
ret = try_walkthrough_jmptbl (anal, fcn, depth, addr + idx, op.ptr, ret);
|
||||
|
||||
} else { // indirect jump: table pointer is unknown
|
||||
if (op.src[0]->reg) {
|
||||
if (op.src[0] && op.src[0]->reg) {
|
||||
ut64 ptr = search_reg_val(anal, buf, idx, addr, op.src[0]->reg->name);
|
||||
if (ptr && ptr != UT64_MAX)
|
||||
ret = try_walkthrough_jmptbl (anal, fcn, depth, addr + idx, ptr, ret);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
}
|
||||
if (!anal->opt.eobjmp) {
|
||||
if (continue_after_jump) {
|
||||
#if 0
|
||||
@ -670,7 +672,6 @@ repeat:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* fallthru */
|
||||
case R_ANAL_OP_TYPE_RET:
|
||||
VERBOSE_ANAL eprintf ("RET 0x%08"PFMT64x". %d %d %d\n",
|
||||
|
Loading…
x
Reference in New Issue
Block a user