Skip to content

Commit d5bd459

Browse files
committed
more segflutes fixed
1 parent 80e9bff commit d5bd459

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
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/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)