From 5256726d0045e8b460a4d280aeb8f944975fe57f Mon Sep 17 00:00:00 2001 From: SSharshunov Date: Fri, 15 May 2026 20:53:27 +0500 Subject: [PATCH] librz/arch/c166: remove unnecessary use of assert macroses (#6345) --- librz/arch/isa/c166/c166_disas.c | 2 +- librz/arch/isa/c166/c166_disas.h | 5 +- librz/arch/omf_process.c | 71 +++++++++++++++------------ librz/arch/p/analysis/analysis_c166.c | 6 +-- librz/arch/p/asm/asm_c166.c | 15 ++++-- librz/bin/format/omf/omf.h | 3 -- librz/bin/p/bin_c166.c | 12 +++-- librz/bin/p/bin_omf166.c | 47 +++++++++++------- 8 files changed, 94 insertions(+), 67 deletions(-) diff --git a/librz/arch/isa/c166/c166_disas.c b/librz/arch/isa/c166/c166_disas.c index 8a394fde7a..1bbcd46ad3 100644 --- a/librz/arch/isa/c166/c166_disas.c +++ b/librz/arch/isa/c166/c166_disas.c @@ -1500,7 +1500,7 @@ end: * \param len Length of buffer * \return Instruction byte size, 2 or 4 or -1 on error */ -RZ_IPI st32 c166_decode_command(RZ_NONNULL C166State *state, RZ_NONNULL C166_Inst *instr, const ut8 *bytes, st32 len) { +RZ_IPI st32 c166_decode_command(RZ_NONNULL C166State *state, RZ_NONNULL C166_Inst *instr, RZ_NONNULL const ut8 *bytes, st32 len) { rz_return_val_if_fail(state && instr && bytes, -1); if (len < 2) return -1; diff --git a/librz/arch/isa/c166/c166_disas.h b/librz/arch/isa/c166/c166_disas.h index d50a102c36..ed43f2663a 100644 --- a/librz/arch/isa/c166/c166_disas.h +++ b/librz/arch/isa/c166/c166_disas.h @@ -6,6 +6,7 @@ #ifndef C166_DISAS_H #define C166_DISAS_H +#include #include #define C166_INSTR_MAXLEN (16 + 16) // ? @@ -748,7 +749,7 @@ typedef enum { typedef struct { bool esfr; ///< Extended register sequence active C166ExtMode mode; ///< Extended page/seq mode - ut8 i; ///< Number of unstructions remaining until state exits + ut8 i; ///< Number of unstructions remaining until state exits ut16 value; ///< Value of ext } C166ExtState; @@ -785,6 +786,6 @@ static inline ut16 get_operand(const C166_Inst *i, const ut8 index) { return get_byte(i, index); } -RZ_IPI st32 c166_decode_command(RZ_NONNULL C166State *state, RZ_NONNULL C166_Inst *instr, const ut8 *bytes, st32 len); +RZ_IPI st32 c166_decode_command(RZ_NONNULL C166State *state, RZ_NONNULL C166_Inst *instr, RZ_NONNULL const ut8 *bytes, st32 len); static bool check_unused_opcode(ut8 opcode); #endif /* C166_DISAS_H */ diff --git a/librz/arch/omf_process.c b/librz/arch/omf_process.c index 59f09b5278..d5fde3bf8c 100644 --- a/librz/arch/omf_process.c +++ b/librz/arch/omf_process.c @@ -9,6 +9,31 @@ #include #include "omf/omf.h" +bool set_reg_val2(RzReg *areg, const char *name, const ut16 value) { + RzRegItem *r = rz_reg_get(areg, name, RZ_REG_TYPE_GPR); + return rz_reg_set_value(areg, r, (ut64)value); +} + +ut64 get_flg_val(RzReg *areg, const char *name) { + const ut64 value = rz_reg_getv(areg, name); + return value; +} + +ut64 get_reg_val2(RzReg *areg, const char *name) { + RzRegItem *reg = rz_reg_get(areg, name, RZ_REG_TYPE_GPR); + const ut64 value = rz_reg_get_value(areg, reg); + return value; +} + +#define SET_CPUCON1(val) set_reg_val2(areg, CPUCON1_NAME, val) +#define SET_SP(val) set_reg_val2(areg, "SP", val) +#define SET_CSP(val) set_reg_val2(areg, "CSP", val) +#define SET_SGTDIS(val) set_reg_val2(areg, CPUCON1_NAME, (CPUCON1_RESET_VALUE | (val << 3))) + +#define GET_SGTDIS get_flg_val(areg, "SGTDIS") +#define GET_CPUCON1 get_reg_val2(areg, "CPUCON1") +#define GET_SP get_reg_val2(areg, "SP") + static OMF_components *get_component_by_ti(const rz_bin_omf166_obj *omf_obj, ut16 ti) { bool found = false; OMF_type *type = ht_up_find(omf_obj->ht_types, ti, &found); @@ -21,7 +46,9 @@ static OMF_components *get_component_by_ti(const rz_bin_omf166_obj *omf_obj, ut1 static bool is_final_type(const rz_bin_omf166_obj *obj, ut16 ti_index) { bool found = false; const OMF_type *type = ht_up_find(obj->ht_types, ti_index, &found); - rz_return_val_if_fail(found, false); + if (!found) { + return false; + } return (type->descr_type == FINAL_TYPE) ? true : false; } @@ -30,7 +57,9 @@ static inline RzType *TYPE_TI(rz_bin_omf166_obj *omf_obj, ut16 ti) { const RzTypeDB *typedb = omf_obj->typedb; const OMF_type *type = ht_up_find(omf_obj->ht_types, ti, &found); - rz_return_val_if_fail(found, rz_type_identifier_of_base_type_str(typedb, "unknown_t")); + if (!found) { + return rz_type_identifier_of_base_type_str(typedb, "unknown_t"); + } if (found && type->descr_type == ARRAY_DESCRIPTOR) { RzType *subtype = TYPE_TI(omf_obj, type->descriptor.array.ti); const ut64 count = (type->descriptor.array.dimsz == 0xFFFFFFFF) ? 0 : type->descriptor.array.dimsz; @@ -72,6 +101,7 @@ static RzBaseType *create_new_primitive_type(const RzTypeDB *typedb, const char const bool result = rz_type_db_save_base_type(typedb, bt); if (!result) { rz_type_base_type_free(bt); + RZ_LOG_WARN("Not found: `%s`\n", name); return NULL; } return bt; @@ -134,7 +164,9 @@ static bool types_cb(void *user, const ut64 k, const void *v) { newtype->callable = cal; cal->ret = TYPE_TI(omf_obj, type->descriptor.function.rtype_ti); cal->args = rz_pvector_new((RzPVectorFree)rz_type_callable_arg_free); - rz_return_val_if_fail(cal->args, false); + if (!cal->args) { + return false; + } const OMF_components *components = get_component_by_ti(omf_obj, type->descriptor.function.parmlist_ti); if (components) { @@ -157,32 +189,10 @@ static bool types_cb(void *user, const ut64 k, const void *v) { return true; } -bool set_reg_val2(RzReg *areg, const char *name, const ut16 value) { - RzRegItem *r = rz_reg_get(areg, name, RZ_REG_TYPE_GPR); - return rz_reg_set_value(areg, r, (ut64)value); -} - -ut64 get_flg_val(RzReg *areg, const char *name) { - const ut64 value = rz_reg_getv(areg, name); - return value; -} - -ut64 get_reg_val2(RzReg *areg, const char *name) { - RzRegItem *reg = rz_reg_get(areg, name, RZ_REG_TYPE_GPR); - const ut64 value = rz_reg_get_value(areg, reg); - return value; -} -#define SET_CPUCON1(val) rz_return_val_if_fail(set_reg_val2(areg, CPUCON1_NAME, val), false) -#define SET_SP(val) rz_return_val_if_fail(set_reg_val2(areg, "SP", val), false) -#define SET_CSP(val) rz_return_val_if_fail(set_reg_val2(areg, "CSP", val), false) -#define SET_SGTDIS(val) rz_return_val_if_fail(set_reg_val2(areg, CPUCON1_NAME, (CPUCON1_RESET_VALUE | (val << 3))), false) - -#define GET_SGTDIS get_flg_val(areg, "SGTDIS") -#define GET_CPUCON1 get_reg_val2(areg, "CPUCON1") -#define GET_SP get_reg_val2(areg, "SP") - RZ_API bool rz_core_bin_apply_omf_debug(const RzCore *core, const RzBinFile *binfile) { - rz_return_val_if_fail(core, false); + if (!core || !binfile) { + return false; + } const char *arch = rz_config_get(core->config, "asm.arch"); if (!strstr(arch, "c166")) { @@ -200,12 +210,9 @@ RZ_API bool rz_core_bin_apply_omf_debug(const RzCore *core, const RzBinFile *bin if (RZ_STR_NE(info->rclass, "OMF166")) { return false; } - rz_return_val_if_fail(binfile, false); RzReg *areg = rz_analysis_get_reg(core->analysis); - SET_SP(SP_RESET_VALUE); - rz_bin_omf166_obj *omf_obj = (rz_bin_omf166_obj *)binfile->o->bin_obj; #ifdef RZ_BUILD_DEBUG @@ -217,7 +224,7 @@ RZ_API bool rz_core_bin_apply_omf_debug(const RzCore *core, const RzBinFile *bin const ut8 mm = memory_model_type(omf_obj->modinfo); if (mm == OMF_MEMORY_MODEL_TINY && !(omf_obj->modinfo & 0x01)) { - eprintf("Wrong memory model type, segmentation cannot be enabled, if mm is TINY\n"); + RZ_LOG_WARN("Wrong memory model type, segmentation cannot be enabled, if mm is TINY\n"); return false; } diff --git a/librz/arch/p/analysis/analysis_c166.c b/librz/arch/p/analysis/analysis_c166.c index 77a1e400e9..3260f310c3 100644 --- a/librz/arch/p/analysis/analysis_c166.c +++ b/librz/arch/p/analysis/analysis_c166.c @@ -380,7 +380,7 @@ static void c166_op_jmps_seg_caddr(RzAnalysis *analysis, RzAnalysisOp *op, const const ut8 SGTDIS = (ut8)GET_A_SGTDIS; if (SGTDIS == 0) { if (!SET_A_CSP((ut64)seg)) { - eprintf("Error setting reg value\n"); + RZ_LOG_WARN("Error setting reg value\n"); } } c166_set_jump_target_seg_caddr(op, seg, caddr); @@ -502,7 +502,7 @@ static void c166_op_call_seg_caddr(RzAnalysis *analysis, RzAnalysisOp *op, const const ut8 SGTDIS = (ut8)GET_A_SGTDIS; if (SGTDIS == 0) { if (!SET_A_CSP((ut64)seg)) { - eprintf("Error setting reg value\n"); + RZ_LOG_WARN("Error setting reg value\n"); } } SET_A_IP((ut64)caddr); @@ -1299,7 +1299,7 @@ static void c166_op_set_type(RZ_NONNULL C166_Inst *instr, RzAnalysis *analysis, case C166_CoSTORE_B3: break; default: - printf("c166_op_set_type 0x%02x\n", instr->id); + RZ_LOG_DEBUG("c166_op_set_type 0x%02x\n", instr->id); rz_warn_if_reached(); } } diff --git a/librz/arch/p/asm/asm_c166.c b/librz/arch/p/asm/asm_c166.c index 94a32c12c3..e0bb99ad58 100644 --- a/librz/arch/p/asm/asm_c166.c +++ b/librz/arch/p/asm/asm_c166.c @@ -332,7 +332,9 @@ static _RzAnalysisOpType c166_analysis_op_type_by_opcode(const ut8 opcode) { * to perform the actual disassembly. */ static st32 disassemble(const RzAsm *a, RzAsmOp *op, const ut8 *buf, st32 len) { - rz_return_val_if_fail(a && op && buf, -1); + if (!a || !op || !buf) { + return -1; + } if (len < 2) { rz_asm_op_setf_asm(op, FMT_WORD, buf[0], 0x00); @@ -373,9 +375,10 @@ static st32 disassemble(const RzAsm *a, RzAsmOp *op, const ut8 *buf, st32 len) { } } op->asm_toks = rz_asm_tokenize_asm_regex(&op->buf_asm, state->token_patterns); - - rz_return_val_if_fail(op->asm_toks, op->size); - op->asm_toks->op_type = c166_analysis_op_type_by_opcode(inst.id); // ??? + if (!op->asm_toks) { + return op->size; + } + op->asm_toks->op_type = c166_analysis_op_type_by_opcode(inst.id); return op->size; } @@ -450,7 +453,9 @@ static bool c16x_init(void **user) { } static bool c16x_fini(void *user) { - rz_return_val_if_fail(user, false); + if (!user) { + return false; + } C166State *state = (C166State *)user; rz_pvector_free(state->token_patterns); free(state); diff --git a/librz/bin/format/omf/omf.h b/librz/bin/format/omf/omf.h index 3389fbff17..0cf7ba1fd7 100644 --- a/librz/bin/format/omf/omf.h +++ b/librz/bin/format/omf/omf.h @@ -9,11 +9,8 @@ #include #include #include - #include "omf_specs.h" -#define BOOL_STR(x) x ? "true" : "false" - #define FINAL_TYPE 0x00 /** * COMPONENT-LIST Descriptor
diff --git a/librz/bin/p/bin_c166.c b/librz/bin/p/bin_c166.c index 636a461d53..1bc0f60aae 100644 --- a/librz/bin/p/bin_c166.c +++ b/librz/bin/p/bin_c166.c @@ -31,7 +31,9 @@ static bool check_buffer(RzBuffer *buf) { rz_bin_c166_obj *rz_bin_format_c166_load(const ut8 *buf, ut64 size) { rz_bin_c166_obj *ret = RZ_NEW0(rz_bin_c166_obj); - rz_return_val_if_fail(ret, NULL); + if (!ret) { + return NULL; + } const ut8 c = rz_read_le8(buf + 1); ret->base_addr = c << 16 | 0x000000; return ret; @@ -40,9 +42,13 @@ rz_bin_c166_obj *rz_bin_format_c166_load(const ut8 *buf, ut64 size) { static bool load_buffer(RzBinFile *bf, RzBinObject *obj, RzBuffer *b, Sdb *sdb) { ut64 size; const ut8 *buf = rz_buf_data(b, &size); - rz_return_val_if_fail(buf, false); + if (!buf) { + return false; + } obj->bin_obj = rz_bin_format_c166_load(buf, size); - rz_return_val_if_fail(obj->bin_obj, false); + if (!obj->bin_obj) { + return false; + } return true; } diff --git a/librz/bin/p/bin_omf166.c b/librz/bin/p/bin_omf166.c index 863b76f580..d45ce8470c 100644 --- a/librz/bin/p/bin_omf166.c +++ b/librz/bin/p/bin_omf166.c @@ -32,10 +32,14 @@ static bool _is_any_n(const char *str, size_t n, ...) { static bool load_buffer(RzBinFile *bf, RzBinObject *obj, RzBuffer *b, Sdb *sdb) { ut64 size; const ut8 *buf = rz_buf_data(b, &size); - rz_return_val_if_fail(buf, false); + if (!buf) { + return false; + } obj->bin_obj = rz_bin_format_omf166_load(buf, size); - rz_return_val_if_fail(obj->bin_obj, false); + if (!obj->bin_obj) { + return false; + } return true; } @@ -51,7 +55,9 @@ static void destroy(RzBinFile *bf) { } rz_bin_omf166_obj *omf_obj = (rz_bin_omf166_obj *)bf->o->bin_obj; - rz_return_val_if_fail(omf_obj, (void)NULL); + if (omf_obj) { + return; + } ht_up_free(omf_obj->ht_types); rz_bin_format_omf166_fini(omf_obj); } @@ -88,7 +94,6 @@ static bool check_buffer(RzBuffer *b) { rz_buf_read_at(b, 0, sbuf, sizeof(sbuf)); return rz_bin_checksum_omf_ok(sbuf, sizeof(sbuf)); } - rz_return_val_if_fail(buf, false); return rz_bin_checksum_omf_ok(buf, length); } @@ -198,18 +203,20 @@ static int offset_cmp(const void *a, const void *b, void *user) { } static RzPVector /**/ *symbols(RzBinFile *bf) { - rz_return_val_if_fail(bf && bf->o, NULL); + if (!bf || !bf->o) { + return NULL; + } const rz_bin_omf166_obj *obj = (rz_bin_omf166_obj *)bf->o->bin_obj; - rz_return_val_if_fail(obj, NULL); + if (!obj) { + return NULL; + } if (!rz_pvector_len(obj->symbols_vec)) { return NULL; } RzPVector *ret = rz_pvector_new((RzPVectorFree)rz_bin_symbol_free); - rz_return_val_if_fail(obj, ret); - rz_pvector_sort(obj->symbols_vec, offset_cmp, NULL); void **it; rz_pvector_foreach (obj->symbols_vec, it) { @@ -283,11 +290,13 @@ static RzPVector /**/ *symbols(RzBinFile *bf) { } static RzStructuredData *omf166_structure(RzBinFile *bf) { - rz_return_val_if_fail(bf, NULL); - const RzBinObject *o = bf->o; - rz_return_val_if_fail(o, NULL); - const rz_bin_omf166_obj *obj = (rz_bin_omf166_obj *)o->bin_obj; - rz_return_val_if_fail(obj, NULL); + if (!bf || !bf->o) { + return NULL; + } + const rz_bin_omf166_obj *obj = (rz_bin_omf166_obj *)bf->o->bin_obj; + if (!obj) { + return NULL; + } RzStructuredData *info = rz_structured_data_new_map(); if (!info) { @@ -343,11 +352,13 @@ static RzStructuredData *omf166_structure(RzBinFile *bf) { } static RzBinInfo *info(RzBinFile *bf) { - rz_return_val_if_fail(bf, NULL); - const RzBinObject *o = bf->o; - rz_return_val_if_fail(o, NULL); - const rz_bin_omf166_obj *obj = (rz_bin_omf166_obj *)o->bin_obj; - rz_return_val_if_fail(obj, NULL); + if (!bf || !bf->o) { + return NULL; + } + const rz_bin_omf166_obj *obj = (rz_bin_omf166_obj *)bf->o->bin_obj; + if (!obj) { + return NULL; + } RzBinInfo *ret; if (!((ret = RZ_NEW0(RzBinInfo)))) {