fix utarray_free null bug

This commit is contained in:
liuwentan
2023-05-08 18:51:53 +08:00
parent f7bde76fcf
commit 4540321998
4 changed files with 49 additions and 29 deletions

View File

@@ -153,15 +153,25 @@ void group2group_schema_free(void *g2g_schema)
void group_vertex_free(struct maat_group *group)
{
utarray_free(group->incl_super_group_ids);
utarray_free(group->excl_super_group_ids);
utarray_free(group->incl_sub_group_ids);
utarray_free(group->excl_sub_group_ids);
group->incl_super_group_ids = NULL;
group->excl_super_group_ids = NULL;
group->incl_sub_group_ids = NULL;
group->excl_sub_group_ids = NULL;
if (group->incl_super_group_ids != NULL) {
utarray_free(group->incl_super_group_ids);
group->incl_super_group_ids = NULL;
}
if (group->excl_super_group_ids != NULL) {
utarray_free(group->excl_super_group_ids);
group->excl_super_group_ids = NULL;
}
if (group->incl_sub_group_ids != NULL) {
utarray_free(group->incl_sub_group_ids);
group->incl_sub_group_ids = NULL;
}
if (group->excl_sub_group_ids != NULL) {
utarray_free(group->excl_sub_group_ids);
group->excl_sub_group_ids = NULL;
}
FREE(group);
}
@@ -648,16 +658,6 @@ int group_topology_build_super_groups(struct maat_group_topology *group_topo)
//Orphan, Not reference by any one, free it.
if (0 == group->ref_by_super_group_cnt
&& 0 == group->ref_by_sub_group_cnt) {
utarray_free(group->incl_super_group_ids);
utarray_free(group->excl_super_group_ids);
utarray_free(group->incl_sub_group_ids);
utarray_free(group->excl_sub_group_ids);
group->incl_super_group_ids = NULL;
group->excl_super_group_ids = NULL;
group->incl_sub_group_ids = NULL;
group->excl_sub_group_ids = NULL;
group_topology_del_group(group_topo, group);
continue;
}
@@ -877,7 +877,6 @@ void verify_candidate_super_group_ids(struct maat_group_topology *group_topo, UT
verify_candidate_super_group_ids(group_topo, kept_group_ids, all_hit_group_ids, depth);
next:
utarray_free(kept_group_ids);
kept_group_ids = NULL;
}
size_t group_topology_get_super_groups(struct maat_group_topology *group_topo,