Fix Objective-C RTTI superclass decoding on big endian (#6588)

Fix Coverity issues: 910855, 910854
This commit is contained in:
Naren Sirigere 2026-07-03 08:10:33 +05:30 committed by GitHub
parent e8d6c98fcb
commit 22ce81d719
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 3 additions and 10 deletions

View file

@ -5,16 +5,14 @@
#include "analysis_private.h"
static const RzBinSymbol *get_objc_superclass(RzAnalysis *analysis, const RzPVector /*<RzBinSymbol *>*/ *symbols, const RzBinSymbol *meta_info) {
ut64 addr;
if (!analysis->iob.read_at(analysis->iob.io, meta_info->vaddr + 8, (ut8 *)&addr, 8)) {
ut8 buf[8];
if (!analysis->iob.read_at(analysis->iob.io, meta_info->vaddr + 8, buf, sizeof(buf))) {
return NULL;
}
ut64 addr = rz_read_ble64(buf, analysis->big_endian);
void **it;
rz_pvector_foreach (symbols, it) {
if (!it) {
continue;
}
RzBinSymbol *super_meta = *it;
if (!super_meta) {
continue;
@ -59,9 +57,6 @@ RZ_API void rz_analysis_rtti_objc(RZ_NONNULL RzAnalysis *analysis) {
const RzPVector *symbols = rz_bin_object_get_symbols(o);
void **it;
rz_pvector_foreach (symbols, it) {
if (!it) {
continue;
}
RzBinSymbol *sym = *it;
if (!sym) {
continue;

View file

@ -226,7 +226,6 @@ static void devirtualize_msg_dispatch(RzCore *core, RzSetU *msg_dispatch_addr) {
rz_analysis_op(core->analysis, op, start, bytes + offset, end - start, RZ_ANALYSIS_OP_MASK_ALL);
if (refresh_vm) {
rz_core_analysis_il_reinit(core);
refresh_vm = false;
}
refresh_vm = is_branch_type_to_method(op);
@ -302,7 +301,6 @@ static void devirtualize_msg_super_dispatch(RzCore *core, RzSetU *msg_super_disp
}
if (refresh_vm) {
rz_core_analysis_il_reinit(core);
refresh_vm = false;
}
refresh_vm = is_branch_type_to_method(op);