Skip to content

Commit

Permalink
libsemanage/tests: free memory
Browse files Browse the repository at this point in the history
Free all memory in test cases, reported by LeakSanitizer.

Signed-off-by: Christian Göttsche <cgzones@googlemail.com>
  • Loading branch information
cgzones authored and fishilico committed Nov 11, 2021
1 parent ea53901 commit fe01a91
Show file tree
Hide file tree
Showing 10 changed files with 183 additions and 3 deletions.
34 changes: 33 additions & 1 deletion libsemanage/tests/test_bool.c
Expand Up @@ -132,6 +132,8 @@ semanage_bool_t *get_bool_nth(int idx)
if (i != (unsigned int) idx)
semanage_bool_free(records[i]);

free(records);

return boolean;
}

Expand Down Expand Up @@ -163,6 +165,8 @@ semanage_bool_key_t *get_bool_key_nth(int idx)
CU_ASSERT_FATAL(res >= 0);
CU_ASSERT_PTR_NOT_NULL_FATAL(key);

semanage_bool_free(boolean);

return key;
}

Expand Down Expand Up @@ -196,6 +200,9 @@ void add_local_bool(const char *name)
CU_ASSERT_PTR_NOT_NULL_FATAL(boolean);

CU_ASSERT_FATAL(semanage_bool_modify_local(sh, key, boolean) >= 0);

semanage_bool_key_free(key);
semanage_bool_free(boolean);
}

void delete_local_bool(const char *name)
Expand All @@ -208,6 +215,8 @@ void delete_local_bool(const char *name)
CU_ASSERT_PTR_NOT_NULL_FATAL(key);

CU_ASSERT_FATAL(semanage_bool_del_local(sh, key) >= 0);

semanage_bool_key_free(key);
}

/* Function bool_key_create */
Expand Down Expand Up @@ -447,6 +456,8 @@ void helper_bool_create(level_t level)
CU_ASSERT_PTR_NULL(semanage_bool_get_name(boolean));
CU_ASSERT(semanage_bool_get_value(boolean) == 0);

semanage_bool_free(boolean);

cleanup_handle(level);
}

Expand Down Expand Up @@ -483,6 +494,9 @@ void helper_bool_clone(level_t level, int bool_idx)

CU_ASSERT_EQUAL(val, val_clone);

semanage_bool_free(boolean_clone);
semanage_bool_free(boolean);

cleanup_handle(level);
}

Expand Down Expand Up @@ -514,6 +528,9 @@ void helper_bool_query(level_t level, const char *bool_str, int exp_res)
CU_ASSERT_PTR_NULL(resp);
}

semanage_bool_free(resp);
semanage_bool_key_free(key);

cleanup_handle(level);
}

Expand Down Expand Up @@ -647,6 +664,8 @@ void helper_bool_list(level_t level)
for (unsigned int i = 0; i < count; i++)
semanage_bool_free(records[i]);

free(records);

cleanup_handle(level);
}

Expand All @@ -662,7 +681,7 @@ void helper_bool_modify_del_local(level_t level, const char *name,
int old_val, int exp_res)
{
semanage_bool_t *boolean;
semanage_bool_t *boolean_local;
semanage_bool_t *boolean_local = NULL;
semanage_bool_key_t *key = NULL;
int res;
int new_val;
Expand Down Expand Up @@ -696,6 +715,8 @@ void helper_bool_modify_del_local(level_t level, const char *name,
CU_ASSERT(semanage_bool_query_local(sh, key,
&boolean_local) >= 0);
CU_ASSERT(semanage_bool_compare2(boolean_local, boolean) == 0);
semanage_bool_free(boolean_local);

CU_ASSERT(semanage_bool_del_local(sh, key) >= 0);
CU_ASSERT(semanage_bool_query_local(sh, key,
&boolean_local) < 0);
Expand Down Expand Up @@ -734,15 +755,18 @@ void test_bool_query_local(void)

/* transaction */
setup_handle(SH_TRANS);
semanage_bool_key_free(key);
CU_ASSERT(semanage_bool_key_create(sh, BOOL1_NAME, &key) >= 0);
CU_ASSERT_PTR_NOT_NULL(key);

CU_ASSERT(semanage_bool_query_local(sh, key, &resp) < 0);
CU_ASSERT_PTR_NULL(resp);
semanage_bool_free(resp);

add_local_bool(BOOL1_NAME);
CU_ASSERT(semanage_bool_query_local(sh, key, &resp) >= 0);
CU_ASSERT_PTR_NOT_NULL(resp);
semanage_bool_free(resp);

semanage_bool_key_free(key);
CU_ASSERT(semanage_bool_key_create(sh, BOOL2_NAME, &key) >= 0);
Expand All @@ -751,8 +775,10 @@ void test_bool_query_local(void)
add_local_bool(BOOL2_NAME);
CU_ASSERT(semanage_bool_query_local(sh, key, &resp) >= 0);
CU_ASSERT_PTR_NOT_NULL(resp);
semanage_bool_free(resp);

/* cleanup */
semanage_bool_key_free(key);
delete_local_bool(BOOL1_NAME);
delete_local_bool(BOOL2_NAME);
cleanup_handle(SH_TRANS);
Expand Down Expand Up @@ -784,6 +810,7 @@ void test_bool_exists_local(void)
CU_ASSERT(resp == 0);

/* cleanup */
semanage_bool_key_free(key);
cleanup_handle(SH_TRANS);
}

Expand Down Expand Up @@ -918,12 +945,17 @@ void test_bool_list_local(void)
CU_ASSERT(semanage_bool_list_local(sh, &records, &count) >= 0);
CU_ASSERT(count == init_count + 1);
CU_ASSERT_PTR_NOT_NULL(records[0]);
semanage_bool_free(records[0]);
free(records);

add_local_bool(BOOL2_NAME);
CU_ASSERT(semanage_bool_list_local(sh, &records, &count) >= 0);
CU_ASSERT(count == init_count + 2);
CU_ASSERT_PTR_NOT_NULL(records[0]);
CU_ASSERT_PTR_NOT_NULL(records[1]);
semanage_bool_free(records[0]);
semanage_bool_free(records[1]);
free(records);

/* cleanup */
delete_local_bool(BOOL1_NAME);
Expand Down
32 changes: 31 additions & 1 deletion libsemanage/tests/test_fcontext.c
Expand Up @@ -214,6 +214,8 @@ semanage_fcontext_t *get_fcontext_nth(int idx)
if (i != (unsigned int) idx)
semanage_fcontext_free(records[i]);

free(records);

return fcontext;
}

Expand All @@ -230,6 +232,8 @@ semanage_fcontext_key_t *get_fcontext_key_nth(int idx)
CU_ASSERT_FATAL(semanage_fcontext_key_extract(sh, fcontext, &key) >= 0);
CU_ASSERT_PTR_NOT_NULL_FATAL(key);

semanage_fcontext_free(fcontext);

return key;
}

Expand All @@ -246,6 +250,10 @@ void add_local_fcontext(int fcontext_idx)
CU_ASSERT_PTR_NOT_NULL_FATAL(key);

CU_ASSERT_FATAL(semanage_fcontext_modify_local(sh, key, fcontext) >= 0);

/* cleanup */
semanage_fcontext_key_free(key);
semanage_fcontext_free(fcontext);
}

void delete_local_fcontext(int fcontext_idx)
Expand All @@ -257,6 +265,8 @@ void delete_local_fcontext(int fcontext_idx)
key = get_fcontext_key_nth(fcontext_idx);

CU_ASSERT_FATAL(semanage_fcontext_del_local(sh, key) >= 0);

semanage_fcontext_key_free(key);
}

semanage_fcontext_key_t *get_fcontext_key_from_str(const char *str, int type)
Expand Down Expand Up @@ -477,6 +487,7 @@ void helper_fcontext_get_set_con(level_t level, int fcontext_idx,
}

/* cleanup */
semanage_context_free(con);
semanage_fcontext_free(fcontext);
cleanup_handle(level);
}
Expand Down Expand Up @@ -587,12 +598,14 @@ void helper_fcontext_query(level_t level, const char *fcontext_expr,
CU_ASSERT(res >= 0);
const char *expr = semanage_fcontext_get_expr(resp);
CU_ASSERT_STRING_EQUAL(expr, fcontext_expr);
semanage_fcontext_free(resp);
} else {
CU_ASSERT(res < 0);
CU_ASSERT(resp == (void *) 42);
}

/* cleanup */
semanage_fcontext_key_free(key);
cleanup_handle(level);
}

Expand Down Expand Up @@ -752,6 +765,8 @@ void helper_fcontext_list(level_t level)
for (unsigned int i = 0; i < count; i++)
semanage_fcontext_free(records[i]);

free(records);

/* cleanup */
cleanup_handle(level);
}
Expand All @@ -768,7 +783,7 @@ void helper_fcontext_modify_del_local(level_t level, int fcontext_idx,
const char *con_str, int exp_res)
{
semanage_fcontext_t *fcontext;
semanage_fcontext_t *fcontext_local;
semanage_fcontext_t *fcontext_local = NULL;
semanage_fcontext_key_t *key = NULL;
semanage_context_t *con = NULL;
int res;
Expand Down Expand Up @@ -803,6 +818,8 @@ void helper_fcontext_modify_del_local(level_t level, int fcontext_idx,
&fcontext_local) >= 0);
CU_ASSERT(semanage_fcontext_compare2(fcontext_local,
fcontext) == 0);
semanage_fcontext_free(fcontext_local);

CU_ASSERT(semanage_fcontext_del_local(sh, key) >= 0);
CU_ASSERT(semanage_fcontext_query_local(sh, key,
&fcontext_local) < 0);
Expand All @@ -811,6 +828,7 @@ void helper_fcontext_modify_del_local(level_t level, int fcontext_idx,
}

/* cleanup */
semanage_context_free(con);
semanage_fcontext_key_free(key);
semanage_fcontext_free(fcontext);
cleanup_handle(level);
Expand Down Expand Up @@ -846,21 +864,27 @@ void test_fcontext_query_local(void)
/* transaction */
setup_handle(SH_TRANS);

semanage_fcontext_key_free(key);
key = get_fcontext_key_nth(I_FIRST);
CU_ASSERT(semanage_fcontext_query_local(sh, key, &resp) < 0);
CU_ASSERT_PTR_NULL(resp);

add_local_fcontext(I_FIRST);
CU_ASSERT(semanage_fcontext_query_local(sh, key, &resp) >= 0);
CU_ASSERT_PTR_NOT_NULL(resp);
semanage_fcontext_free(resp);
resp = NULL;

semanage_fcontext_key_free(key);
key = get_fcontext_key_nth(I_SECOND);
add_local_fcontext(I_SECOND);
CU_ASSERT(semanage_fcontext_query_local(sh, key, &resp) >= 0);
CU_ASSERT_PTR_NOT_NULL(resp);
semanage_fcontext_free(resp);
resp = NULL;

/* cleanup */
semanage_fcontext_key_free(key);
delete_local_fcontext(I_FIRST);
delete_local_fcontext(I_SECOND);
cleanup_handle(SH_TRANS);
Expand Down Expand Up @@ -898,6 +922,7 @@ void test_fcontext_exists_local(void)
CU_ASSERT(resp == 0);

/* cleanup */
semanage_fcontext_key_free(key);
cleanup_handle(SH_TRANS);
}

Expand Down Expand Up @@ -1031,12 +1056,17 @@ void test_fcontext_list_local(void)
CU_ASSERT(semanage_fcontext_list_local(sh, &records, &count) >= 0);
CU_ASSERT(count == 1);
CU_ASSERT_PTR_NOT_NULL(records[0]);
semanage_fcontext_free(records[0]);
free(records);

add_local_fcontext(I_SECOND);
CU_ASSERT(semanage_fcontext_list_local(sh, &records, &count) >= 0);
CU_ASSERT(count == 2);
CU_ASSERT_PTR_NOT_NULL(records[0]);
CU_ASSERT_PTR_NOT_NULL(records[1]);
semanage_fcontext_free(records[0]);
semanage_fcontext_free(records[1]);
free(records);

/* cleanup */
delete_local_fcontext(I_FIRST);
Expand Down
13 changes: 13 additions & 0 deletions libsemanage/tests/test_ibendport.c
Expand Up @@ -113,6 +113,8 @@ semanage_ibendport_t *get_ibendport_nth(int idx)
if (i != (unsigned int) idx)
semanage_ibendport_free(records[i]);

free(records);

return ibendport;
}

Expand All @@ -132,6 +134,8 @@ semanage_ibendport_key_t *get_ibendport_key_nth(int idx)
CU_ASSERT_FATAL(res >= 0);
CU_ASSERT_PTR_NOT_NULL_FATAL(key);

semanage_ibendport_free(ibendport);

return key;
}

Expand All @@ -148,13 +152,18 @@ void add_local_ibendport(int idx)

CU_ASSERT_FATAL(semanage_ibendport_modify_local(sh, key,
ibendport) >= 0);

semanage_ibendport_key_free(key);
semanage_ibendport_free(ibendport);
}

void delete_local_ibendport(int idx)
{
semanage_ibendport_key_t *key = NULL;
key = get_ibendport_key_nth(idx);
CU_ASSERT_FATAL(semanage_ibendport_del_local(sh, key) >= 0);

semanage_ibendport_key_free(key);
}

/* Function semanage_ibendport_query */
Expand Down Expand Up @@ -195,7 +204,9 @@ void test_ibendport_query(void)
CU_ASSERT_CONTEXT_EQUAL(con, con_exp);

/* cleanup */
free(name_exp);
free(name);
semanage_ibendport_key_free(key);
semanage_ibendport_free(ibendport);
semanage_ibendport_free(ibendport_exp);
cleanup_handle(SH_CONNECT);
Expand Down Expand Up @@ -356,12 +367,14 @@ void test_ibendport_modify_del_query_local(void)
CU_ASSERT(semanage_ibendport_query_local(sh, key,
&ibendport_local) >= 0);
CU_ASSERT_PTR_NOT_NULL_FATAL(ibendport_local);
semanage_ibendport_free(ibendport_local);

CU_ASSERT(semanage_ibendport_del_local(sh, key) >= 0);
CU_ASSERT(semanage_ibendport_query_local(sh, key,
&ibendport_local) < 0);

/* cleanup */
semanage_ibendport_key_free(key);
semanage_ibendport_free(ibendport);
cleanup_handle(SH_TRANS);
}
Expand Down

0 comments on commit fe01a91

Please sign in to comment.