project: fix global var loading (#4298)

This commit is contained in:
billow 2024-02-27 04:42:23 -08:00 committed by GitHub
parent 58f7032f26
commit 3b3d57c36c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1035,6 +1035,11 @@ static bool global_var_load_cb(void *user, const char *k, const char *v) {
} }
RzCore *core = ctx->analysis->core; RzCore *core = ctx->analysis->core;
addr = rz_num_math(core->num, addr_s); addr = rz_num_math(core->num, addr_s);
if (rz_analysis_var_global_get_byaddr_in(ctx->analysis, addr) ||
rz_analysis_var_global_get_byname(ctx->analysis, name)) {
return true;
}
glob = rz_analysis_var_global_new(name, addr); glob = rz_analysis_var_global_new(name, addr);
if (!glob) { if (!glob) {
goto beach; goto beach;
@ -1065,7 +1070,7 @@ RZ_API bool rz_serialize_analysis_global_var_load(RZ_NONNULL Sdb *db, RZ_NONNULL
} }
ret = sdb_foreach(db, global_var_load_cb, &ctx); ret = sdb_foreach(db, global_var_load_cb, &ctx);
if (!ret) { if (!ret) {
RZ_SERIALIZE_ERR(res, "functions parsing failed"); RZ_SERIALIZE_ERR(res, "global var parsing failed");
} }
beach: beach:
rz_key_parser_free(ctx.parser); rz_key_parser_free(ctx.parser);