Fix aof and tcc db/formats/mach0/mach0

* Fix aof

* Fix tcc db/formats/mach0/mach0
This commit is contained in:
Liumeo 2021-01-13 00:18:01 -05:00 committed by GitHub
parent b0877cecb4
commit 30afe39c5c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 11 deletions

View File

@ -192,13 +192,14 @@ static bool _edf_reg_set(RAnalEsilDFG *dfg, const char *reg, RGraphNode *node) {
free (_reg);
return false;
}
free (_reg);
EsilDFGRegVar *rv = R_NEW0 (EsilDFGRegVar);
if (!rv) {
free (_reg);
return false;
}
const ut64 v = sdb_num_get (dfg->regs, _reg, NULL);
free (_reg);
rv->from = (v & (UT64_MAX ^ UT32_MAX)) >> 32;
rv->to = v & UT32_MAX;
r_queue_enqueue (dfg->todo, rv);
@ -1167,13 +1168,15 @@ R_API RStrBuf *r_anal_esil_dfg_filter(RAnalEsilDFG *dfg, const char *reg) {
// dfs the graph starting at node of esp-register
r_graph_dfs_node_reverse (dfg->flow, resolve_me, &vi);
RBIter ator;
RAnalEsilDFGNode *node;
r_rbtree_cont_foreach (filter.tree, ator, node) {
// resolve results to opstr here
RStrBuf *resolved = get_resolved_expr (&filter, node);
r_strbuf_append (filtered, r_strbuf_get (resolved));
r_strbuf_free (resolved);
if (filter.tree->root) {
RBIter ator;
RAnalEsilDFGNode *node;
r_rbtree_cont_foreach (filter.tree, ator, node) {
// resolve results to opstr here
RStrBuf *resolved = get_resolved_expr (&filter, node);
r_strbuf_append (filtered, r_strbuf_get (resolved));
r_strbuf_free (resolved);
}
}
{
char *sanitized = r_str_replace (r_str_replace (strdup (r_strbuf_get (filtered)), ",,", ",", 1), ",,", ",", 1);

View File

@ -4034,7 +4034,7 @@ void MACH0_(mach_headerfields)(RBinFile *bf) {
}
for (n = 0; n < mh->ncmds; n++) {
READWORD ();
int lcType = word;
ut32 lcType = word;
const char *pf_definition = cmd_to_pf_definition (lcType);
if (pf_definition) {
cb_printf ("pf.%s @ 0x%08"PFMT64x"\n", pf_definition, pvaddr - 4);

View File

@ -6916,8 +6916,8 @@ static void cmd_anal_opcode(RCore *core, const char *input) {
core_anal_bytes (core, core->block, len, count, 0);
}
break;
case 'f':
{
case 'f': // "aof"
if (strlen (input + 1) > 1) {
RAnalOp aop = R_EMPTY;
ut8 data[32];
r_io_read_at (core->io, core->offset, data, sizeof (data));