mirror of
https://github.com/rizinorg/rizin.git
synced 2026-10-12 02:21:57 +00:00
fix memory leaks in dyldcache_classes() in librz/bin/p/bin_dyldcache.c (#6858)
This commit is contained in:
@@ -453,6 +453,10 @@ static RzPVector /*<RzBinClass *>*/ *dyldcache_classes(RzBinFile *bf) {
|
||||
if (!(klass = RZ_NEW0(RzBinClass)) ||
|
||||
!(klass->methods = rz_list_newf((RzListFree)rz_bin_symbol_free)) ||
|
||||
!(klass->fields = rz_list_newf((RzListFree)rz_bin_class_field_free))) {
|
||||
if (klass) {
|
||||
rz_list_free(klass->methods);
|
||||
rz_list_free(klass->fields);
|
||||
}
|
||||
RZ_FREE(klass);
|
||||
RZ_FREE(pointers);
|
||||
RZ_FREE(sections);
|
||||
@@ -475,6 +479,8 @@ static RzPVector /*<RzBinClass *>*/ *dyldcache_classes(RzBinFile *bf) {
|
||||
RZ_LOG_ERROR("CLASS ERROR AT 0x%" PFMT64x ", is_classlist %d\n", pointer_to_class, is_classlist);
|
||||
klass->name = rz_str_newf("UnnamedClass%u", num_of_unnamed_class);
|
||||
if (!klass->name) {
|
||||
rz_list_free(klass->methods);
|
||||
rz_list_free(klass->fields);
|
||||
RZ_FREE(klass);
|
||||
RZ_FREE(pointers);
|
||||
RZ_FREE(sections);
|
||||
|
||||
Reference in New Issue
Block a user