diff --git a/librz/asm/p/asm_hexagon.c b/librz/asm/p/asm_hexagon.c index e8db9add94..92a66144de 100644 --- a/librz/asm/p/asm_hexagon.c +++ b/librz/asm/p/asm_hexagon.c @@ -174,7 +174,7 @@ static bool hexagon_fini(void *user) { return true; } -RZ_API RZ_BORROW RzConfig *hexagon_get_config() { +RZ_API RZ_BORROW RzConfig *hexagon_get_config(void) { HexState *state = hexagon_get_state(); rz_return_val_if_fail(state, NULL); return state->cfg; diff --git a/librz/bin/dwarf/aranges.c b/librz/bin/dwarf/aranges.c index c1a7e46fa8..fd20c1e63e 100644 --- a/librz/bin/dwarf/aranges.c +++ b/librz/bin/dwarf/aranges.c @@ -23,9 +23,8 @@ RZ_API void rz_bin_dwarf_aranges_free(RZ_OWN RZ_NULLABLE RzBinDwarfARanges *aran free(aranges); } -static bool RzBinDwarfARanges_parse( - RzBinDwarfARanges *aranges) { - rz_return_val_if_fail(aranges, NULL); +static bool RzBinDwarfARanges_parse(RzBinDwarfARanges *aranges) { + rz_return_val_if_fail(aranges, false); RzBinEndianReader *reader = aranges->reader; // DWARF 3 Standard Section 6.1.2 Lookup by Address // also useful to grep for display_debug_aranges in binutils diff --git a/librz/bin/dwarf/block.c b/librz/bin/dwarf/block.c index bcf6a862af..aa37376198 100644 --- a/librz/bin/dwarf/block.c +++ b/librz/bin/dwarf/block.c @@ -4,7 +4,8 @@ #include #include "dwarf_private.h" -RZ_API const ut8 *rz_bin_dwarf_block_data(const RzBinDwarfBlock *self) { +RZ_API RZ_BORROW const ut8 *rz_bin_dwarf_block_data(RZ_NONNULL const RzBinDwarfBlock *self) { + rz_return_val_if_fail(self, NULL); return self->length < RZ_ARRAY_SIZE(self->data) ? self->data : self->ptr; } @@ -33,8 +34,8 @@ RZ_IPI RzBinDwarfBlock *RzBinDwarfBlock_cpy(RzBinDwarfBlock *self, RzBinDwarfBlo return out; } -RZ_API bool rz_bin_dwarf_block_valid(const RzBinDwarfBlock *self) { - rz_return_val_if_fail(self, NULL); +RZ_API bool rz_bin_dwarf_block_valid(RZ_NONNULL const RzBinDwarfBlock *self) { + rz_return_val_if_fail(self, false); if (self->length == 0) { return true; } @@ -44,8 +45,8 @@ RZ_API bool rz_bin_dwarf_block_valid(const RzBinDwarfBlock *self) { return true; } -RZ_API bool rz_bin_dwarf_block_empty(const RzBinDwarfBlock *self) { - rz_return_val_if_fail(self, NULL); +RZ_API bool rz_bin_dwarf_block_empty(RZ_NONNULL const RzBinDwarfBlock *self) { + rz_return_val_if_fail(self, false); return self->length == 0; } @@ -70,7 +71,8 @@ RZ_IPI bool RzBinDwarfBlock_move(RzBinDwarfBlock *self, RzBinDwarfBlock *out) { return true; } -RZ_API void rz_bin_dwarf_block_dump(const RzBinDwarfBlock *self, RzStrBuf *sb) { +RZ_API void rz_bin_dwarf_block_dump(RZ_NONNULL const RzBinDwarfBlock *self, RZ_NONNULL RzStrBuf *sb) { + rz_return_if_fail(self && sb); if (self->length == 0) { rz_strbuf_appendf(sb, " "); return; diff --git a/librz/bin/dwarf/value.c b/librz/bin/dwarf/value.c index 27a9056ba7..278a48ab28 100644 --- a/librz/bin/dwarf/value.c +++ b/librz/bin/dwarf/value.c @@ -135,38 +135,38 @@ RZ_IPI bool Value_parse_into( value->type = value_type; switch (value_type) { case RzBinDwarfValueType_I8: - READ8_OR(st8, value->i8, return NULL); + READ8_OR(st8, value->i8, return false); break; case RzBinDwarfValueType_U8: - READ8_OR(ut8, value->u8, return NULL); + READ8_OR(ut8, value->u8, return false); break; case RzBinDwarfValueType_I16: - READ_T_OR(16, st16, value->i16, return NULL); + READ_T_OR(16, st16, value->i16, return false); break; case RzBinDwarfValueType_U16: - READ_T_OR(16, ut16, value->u16, return NULL); + READ_T_OR(16, ut16, value->u16, return false); break; case RzBinDwarfValueType_I32: - READ_T_OR(32, st32, value->i32, return NULL); + READ_T_OR(32, st32, value->i32, return false); break; case RzBinDwarfValueType_U32: - READ_T_OR(32, ut32, value->u32, return NULL); + READ_T_OR(32, ut32, value->u32, return false); break; case RzBinDwarfValueType_I64: - READ_T_OR(64, st64, value->i64, return NULL); + READ_T_OR(64, st64, value->i64, return false); break; case RzBinDwarfValueType_U64: - READ_UT_OR(64, value->u64, return NULL); + READ_UT_OR(64, value->u64, return false); break; case RzBinDwarfValueType_I128: case RzBinDwarfValueType_U128: RZ_LOG_ERROR("I128/U128 not supported\n") - return NULL; + return false; case RzBinDwarfValueType_F32: - READ_T_OR(32, float, value->f32, return NULL); + READ_T_OR(32, float, value->f32, return false); break; case RzBinDwarfValueType_F64: - READ_T_OR(64, double, value->f64, return NULL); + READ_T_OR(64, double, value->f64, return false); break; default: return false; diff --git a/librz/debug/p/debug_windbg.c b/librz/debug/p/debug_windbg.c index 76299dd54f..5be02cba3c 100644 --- a/librz/debug/p/debug_windbg.c +++ b/librz/debug/p/debug_windbg.c @@ -145,7 +145,7 @@ static void break_debugger(void *user) { do_break = true; } -static int windbg_wait(RzDebug *dbg, int pid) { +static RzDebugReasonType windbg_wait(RzDebug *dbg, int pid) { DbgEngContext *idbg = dbg->plugin_data; rz_return_val_if_fail(idbg && idbg->initialized, 0); ULONG Type, ProcessId, ThreadId; diff --git a/librz/include/rz_bin_dwarf.h b/librz/include/rz_bin_dwarf.h index 11c528bf5f..fb9f04b37f 100644 --- a/librz/include/rz_bin_dwarf.h +++ b/librz/include/rz_bin_dwarf.h @@ -1802,10 +1802,10 @@ RZ_API RZ_OWN RzBinDwarfRngLists *rz_bin_dwarf_rnglists_new_from_file( RZ_BORROW RZ_NONNULL RzBinFile *bf, bool is_dwo); /// Block -RZ_API bool rz_bin_dwarf_block_valid(const RzBinDwarfBlock *self); -RZ_API bool rz_bin_dwarf_block_empty(const RzBinDwarfBlock *self); -RZ_API void rz_bin_dwarf_block_dump(const RzBinDwarfBlock *self, RzStrBuf *sb); -RZ_API const ut8 *rz_bin_dwarf_block_data(const RzBinDwarfBlock *self); +RZ_API bool rz_bin_dwarf_block_valid(RZ_NONNULL const RzBinDwarfBlock *self); +RZ_API bool rz_bin_dwarf_block_empty(RZ_NONNULL const RzBinDwarfBlock *self); +RZ_API void rz_bin_dwarf_block_dump(RZ_NONNULL const RzBinDwarfBlock *self, RZ_NONNULL RzStrBuf *sb); +RZ_API RZ_BORROW const ut8 *rz_bin_dwarf_block_data(RZ_NONNULL const RzBinDwarfBlock *self); /// addr RZ_API bool rz_bin_dwarf_addr_get( diff --git a/librz/util/vector.c b/librz/util/vector.c index fa9e7aa272..7ef3235132 100644 --- a/librz/util/vector.c +++ b/librz/util/vector.c @@ -19,17 +19,20 @@ : vec->capacity <= 12 ? vec->capacity * 2 \ : vec->capacity + (vec->capacity >> 1)) -#define RESIZE_OR_RETURN_NULL(next_capacity) \ +#define RESIZE_OR_RETURN_VAL(next_capacity, retval) \ do { \ size_t new_capacity = next_capacity; \ void **new_a = realloc(vec->a, vec->elem_size * new_capacity); \ if (!new_a && new_capacity) { \ - return NULL; \ + return retval; \ } \ vec->a = new_a; \ vec->capacity = new_capacity; \ } while (0) +#define RESIZE_OR_RETURN_NULL(next_capacity) RESIZE_OR_RETURN_VAL(next_capacity, NULL) +#define RESIZE_OR_RETURN_FALSE(next_capacity) RESIZE_OR_RETURN_VAL(next_capacity, false) + RZ_API void rz_vector_init(RzVector *vec, size_t elem_size, RzVectorFree free, void *free_user) { rz_return_if_fail(vec); vec->a = NULL; @@ -456,7 +459,7 @@ RZ_API bool rz_pvector_join(RZ_NONNULL RzPVector *pvec1, RZ_NONNULL RzPVector *p } RzVector *vec = &pvec1->v; - RESIZE_OR_RETURN_NULL(RZ_MAX(NEXT_VECTOR_CAPACITY, pvec1->v.len + pvec2->v.len)); + RESIZE_OR_RETURN_FALSE(RZ_MAX(NEXT_VECTOR_CAPACITY, pvec1->v.len + pvec2->v.len)); memmove((void **)pvec1->v.a + pvec1->v.len, pvec2->v.a, pvec2->v.elem_size * pvec2->v.len); pvec1->v.len += pvec2->v.len;