Skip to content

Commit 5057b38

Browse files
committed
more segflutes fixed
1 parent 80e9bff commit 5057b38

File tree

3 files changed

+14
-7
lines changed

3 files changed

+14
-7
lines changed

libr/core/anal_tp.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1080,7 +1080,9 @@ static bool tt_reg_read(void *reg, const char *name, ut64 *val) {
10801080
if (!ri) {
10811081
return false;
10821082
}
1083-
*val = r_reg_get_value ((RReg *)reg, ri);
1083+
if (val) {
1084+
*val = r_reg_get_value ((RReg *)reg, ri);
1085+
}
10841086
r_unref (ri);
10851087
return true;
10861088
}

libr/core/cmd_anal.inc.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8470,7 +8470,6 @@ static void cmd_aespc(RCore *core, ut64 addr, ut64 until_addr, int ninstr) {
84708470
break;
84718471
default:
84728472
r_reg_setv (core->anal->reg, "PC", aop.addr + aop.size);
8473-
eprintf ("%p\n", esil->cb.hook_reg_write);
84748473
r_reg_setv (core->dbg->reg, "PC", aop.addr + aop.size);
84758474
const char *e = R_STRBUF_SAFEGET (&aop.esil);
84768475
if (R_STR_ISNOTEMPTY (e)) {

libr/esil/esil.c

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -680,7 +680,9 @@ R_API bool r_esil_reg_read(REsil *esil, const char *regname, ut64 *val, ut32 *si
680680
}
681681
do {
682682
REsilVoyeur *voy = r_id_storage_get (&esil->voyeur[R_ESIL_VOYEUR_REG_READ], i);
683-
voy->reg_read (voy->user, regname, *val);
683+
if (val) {
684+
voy->reg_read (voy->user, regname, *val);
685+
}
684686
} while (r_id_storage_get_next (&esil->voyeur[R_ESIL_VOYEUR_REG_READ], &i));
685687
return true;
686688
#else
@@ -691,7 +693,7 @@ R_API bool r_esil_reg_read(REsil *esil, const char *regname, ut64 *val, ut32 *si
691693
val = &localnum;
692694
}
693695
*val = 0LL;
694-
if (size) {
696+
if (size && esil->anal && esil->anal->config) {
695697
*size = esil->anal->config->bits;
696698
}
697699
if (esil->cb.hook_reg_read) {
@@ -706,12 +708,16 @@ R_API bool r_esil_reg_read(REsil *esil, const char *regname, ut64 *val, ut32 *si
706708

707709
R_API bool r_esil_reg_read_silent(REsil *esil, const char *name, ut64 *val, ut32 *size) {
708710
R_RETURN_VAL_IF_FAIL (esil && esil->reg_if.reg_read && name, false);
709-
if (!esil->reg_if.reg_read (esil->reg_if.reg, name, val)) {
710-
return false;
711-
}
712711
if (esil->reg_if.reg_size && size) {
713712
*size = esil->reg_if.reg_size (esil->reg_if.reg, name);
714713
}
714+
if (val) {
715+
if (!esil->reg_if.reg_read (esil->reg_if.reg, name, val)) {
716+
return false;
717+
}
718+
} else {
719+
return esil->reg_if.is_reg (esil->reg_if.reg, name);
720+
}
715721
return true;
716722
}
717723

0 commit comments

Comments
 (0)