Skip to content

Commit 322243e

Browse files
committed
libsemanage: free memory in tests
Signed-off-by: Christian Göttsche <[email protected]>
1 parent 33697c4 commit 322243e

10 files changed

+181
-3
lines changed

libsemanage/tests/test_bool.c

+32-1
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,8 @@ semanage_bool_t *get_bool_nth(int idx)
132132
if (i != (unsigned int) idx)
133133
semanage_bool_free(records[i]);
134134

135+
free(records);
136+
135137
return boolean;
136138
}
137139

@@ -163,6 +165,8 @@ semanage_bool_key_t *get_bool_key_nth(int idx)
163165
CU_ASSERT_FATAL(res >= 0);
164166
CU_ASSERT_PTR_NOT_NULL_FATAL(key);
165167

168+
semanage_bool_free(boolean);
169+
166170
return key;
167171
}
168172

@@ -196,6 +200,9 @@ void add_local_bool(const char *name)
196200
CU_ASSERT_PTR_NOT_NULL_FATAL(boolean);
197201

198202
CU_ASSERT_FATAL(semanage_bool_modify_local(sh, key, boolean) >= 0);
203+
204+
semanage_bool_key_free(key);
205+
semanage_bool_free(boolean);
199206
}
200207

201208
void delete_local_bool(const char *name)
@@ -208,6 +215,8 @@ void delete_local_bool(const char *name)
208215
CU_ASSERT_PTR_NOT_NULL_FATAL(key);
209216

210217
CU_ASSERT_FATAL(semanage_bool_del_local(sh, key) >= 0);
218+
219+
semanage_bool_key_free(key);
211220
}
212221

213222
/* Function bool_key_create */
@@ -447,6 +456,8 @@ void helper_bool_create(level_t level)
447456
CU_ASSERT_PTR_NULL(semanage_bool_get_name(boolean));
448457
CU_ASSERT(semanage_bool_get_value(boolean) == 0);
449458

459+
semanage_bool_free(boolean);
460+
450461
cleanup_handle(level);
451462
}
452463

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

484495
CU_ASSERT_EQUAL(val, val_clone);
485496

497+
semanage_bool_free(boolean_clone);
498+
semanage_bool_free(boolean);
499+
486500
cleanup_handle(level);
487501
}
488502

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

531+
semanage_bool_free(resp);
532+
semanage_bool_key_free(key);
533+
517534
cleanup_handle(level);
518535
}
519536

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

667+
free(records);
668+
650669
cleanup_handle(level);
651670
}
652671

@@ -662,7 +681,7 @@ void helper_bool_modify_del_local(level_t level, const char *name,
662681
int old_val, int exp_res)
663682
{
664683
semanage_bool_t *boolean;
665-
semanage_bool_t *boolean_local;
684+
semanage_bool_t *boolean_local = NULL;
666685
semanage_bool_key_t *key = NULL;
667686
int res;
668687
int new_val;
@@ -703,6 +722,7 @@ void helper_bool_modify_del_local(level_t level, const char *name,
703722

704723
/* cleanup */
705724
semanage_bool_key_free(key);
725+
semanage_bool_free(boolean_local);
706726
semanage_bool_free(boolean);
707727

708728
cleanup_handle(level);
@@ -734,15 +754,18 @@ void test_bool_query_local(void)
734754

735755
/* transaction */
736756
setup_handle(SH_TRANS);
757+
semanage_bool_key_free(key);
737758
CU_ASSERT(semanage_bool_key_create(sh, BOOL1_NAME, &key) >= 0);
738759
CU_ASSERT_PTR_NOT_NULL(key);
739760

740761
CU_ASSERT(semanage_bool_query_local(sh, key, &resp) < 0);
741762
CU_ASSERT_PTR_NULL(resp);
763+
semanage_bool_free(resp);
742764

743765
add_local_bool(BOOL1_NAME);
744766
CU_ASSERT(semanage_bool_query_local(sh, key, &resp) >= 0);
745767
CU_ASSERT_PTR_NOT_NULL(resp);
768+
semanage_bool_free(resp);
746769

747770
semanage_bool_key_free(key);
748771
CU_ASSERT(semanage_bool_key_create(sh, BOOL2_NAME, &key) >= 0);
@@ -751,8 +774,10 @@ void test_bool_query_local(void)
751774
add_local_bool(BOOL2_NAME);
752775
CU_ASSERT(semanage_bool_query_local(sh, key, &resp) >= 0);
753776
CU_ASSERT_PTR_NOT_NULL(resp);
777+
semanage_bool_free(resp);
754778

755779
/* cleanup */
780+
semanage_bool_key_free(key);
756781
delete_local_bool(BOOL1_NAME);
757782
delete_local_bool(BOOL2_NAME);
758783
cleanup_handle(SH_TRANS);
@@ -784,6 +809,7 @@ void test_bool_exists_local(void)
784809
CU_ASSERT(resp == 0);
785810

786811
/* cleanup */
812+
semanage_bool_key_free(key);
787813
cleanup_handle(SH_TRANS);
788814
}
789815

@@ -918,12 +944,17 @@ void test_bool_list_local(void)
918944
CU_ASSERT(semanage_bool_list_local(sh, &records, &count) >= 0);
919945
CU_ASSERT(count == init_count + 1);
920946
CU_ASSERT_PTR_NOT_NULL(records[0]);
947+
semanage_bool_free(records[0]);
948+
free(records);
921949

922950
add_local_bool(BOOL2_NAME);
923951
CU_ASSERT(semanage_bool_list_local(sh, &records, &count) >= 0);
924952
CU_ASSERT(count == init_count + 2);
925953
CU_ASSERT_PTR_NOT_NULL(records[0]);
926954
CU_ASSERT_PTR_NOT_NULL(records[1]);
955+
semanage_bool_free(records[0]);
956+
semanage_bool_free(records[1]);
957+
free(records);
927958

928959
/* cleanup */
929960
delete_local_bool(BOOL1_NAME);

libsemanage/tests/test_fcontext.c

+30-1
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,8 @@ semanage_fcontext_t *get_fcontext_nth(int idx)
214214
if (i != (unsigned int) idx)
215215
semanage_fcontext_free(records[i]);
216216

217+
free(records);
218+
217219
return fcontext;
218220
}
219221

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

235+
semanage_fcontext_free(fcontext);
236+
233237
return key;
234238
}
235239

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

248252
CU_ASSERT_FATAL(semanage_fcontext_modify_local(sh, key, fcontext) >= 0);
253+
254+
/* cleanup */
255+
semanage_fcontext_key_free(key);
256+
semanage_fcontext_free(fcontext);
249257
}
250258

251259
void delete_local_fcontext(int fcontext_idx)
@@ -257,6 +265,8 @@ void delete_local_fcontext(int fcontext_idx)
257265
key = get_fcontext_key_nth(fcontext_idx);
258266

259267
CU_ASSERT_FATAL(semanage_fcontext_del_local(sh, key) >= 0);
268+
269+
semanage_fcontext_key_free(key);
260270
}
261271

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

479489
/* cleanup */
490+
semanage_context_free(con);
480491
semanage_fcontext_free(fcontext);
481492
cleanup_handle(level);
482493
}
@@ -587,12 +598,14 @@ void helper_fcontext_query(level_t level, const char *fcontext_expr,
587598
CU_ASSERT(res >= 0);
588599
const char *expr = semanage_fcontext_get_expr(resp);
589600
CU_ASSERT_STRING_EQUAL(expr, fcontext_expr);
601+
semanage_fcontext_free(resp);
590602
} else {
591603
CU_ASSERT(res < 0);
592604
CU_ASSERT(resp == (void *) 42);
593605
}
594606

595607
/* cleanup */
608+
semanage_fcontext_key_free(key);
596609
cleanup_handle(level);
597610
}
598611

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

768+
free(records);
769+
755770
/* cleanup */
756771
cleanup_handle(level);
757772
}
@@ -768,7 +783,7 @@ void helper_fcontext_modify_del_local(level_t level, int fcontext_idx,
768783
const char *con_str, int exp_res)
769784
{
770785
semanage_fcontext_t *fcontext;
771-
semanage_fcontext_t *fcontext_local;
786+
semanage_fcontext_t *fcontext_local = NULL;
772787
semanage_fcontext_key_t *key = NULL;
773788
semanage_context_t *con = NULL;
774789
int res;
@@ -811,7 +826,9 @@ void helper_fcontext_modify_del_local(level_t level, int fcontext_idx,
811826
}
812827

813828
/* cleanup */
829+
semanage_context_free(con);
814830
semanage_fcontext_key_free(key);
831+
semanage_fcontext_free(fcontext_local);
815832
semanage_fcontext_free(fcontext);
816833
cleanup_handle(level);
817834
}
@@ -846,21 +863,27 @@ void test_fcontext_query_local(void)
846863
/* transaction */
847864
setup_handle(SH_TRANS);
848865

866+
semanage_fcontext_key_free(key);
849867
key = get_fcontext_key_nth(I_FIRST);
850868
CU_ASSERT(semanage_fcontext_query_local(sh, key, &resp) < 0);
851869
CU_ASSERT_PTR_NULL(resp);
852870

853871
add_local_fcontext(I_FIRST);
854872
CU_ASSERT(semanage_fcontext_query_local(sh, key, &resp) >= 0);
855873
CU_ASSERT_PTR_NOT_NULL(resp);
874+
semanage_fcontext_free(resp);
875+
resp = NULL;
856876

857877
semanage_fcontext_key_free(key);
858878
key = get_fcontext_key_nth(I_SECOND);
859879
add_local_fcontext(I_SECOND);
860880
CU_ASSERT(semanage_fcontext_query_local(sh, key, &resp) >= 0);
861881
CU_ASSERT_PTR_NOT_NULL(resp);
882+
semanage_fcontext_free(resp);
883+
resp = NULL;
862884

863885
/* cleanup */
886+
semanage_fcontext_key_free(key);
864887
delete_local_fcontext(I_FIRST);
865888
delete_local_fcontext(I_SECOND);
866889
cleanup_handle(SH_TRANS);
@@ -898,6 +921,7 @@ void test_fcontext_exists_local(void)
898921
CU_ASSERT(resp == 0);
899922

900923
/* cleanup */
924+
semanage_fcontext_key_free(key);
901925
cleanup_handle(SH_TRANS);
902926
}
903927

@@ -1031,12 +1055,17 @@ void test_fcontext_list_local(void)
10311055
CU_ASSERT(semanage_fcontext_list_local(sh, &records, &count) >= 0);
10321056
CU_ASSERT(count == 1);
10331057
CU_ASSERT_PTR_NOT_NULL(records[0]);
1058+
semanage_fcontext_free(records[0]);
1059+
free(records);
10341060

10351061
add_local_fcontext(I_SECOND);
10361062
CU_ASSERT(semanage_fcontext_list_local(sh, &records, &count) >= 0);
10371063
CU_ASSERT(count == 2);
10381064
CU_ASSERT_PTR_NOT_NULL(records[0]);
10391065
CU_ASSERT_PTR_NOT_NULL(records[1]);
1066+
semanage_fcontext_free(records[0]);
1067+
semanage_fcontext_free(records[1]);
1068+
free(records);
10401069

10411070
/* cleanup */
10421071
delete_local_fcontext(I_FIRST);

libsemanage/tests/test_ibendport.c

+13
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,8 @@ semanage_ibendport_t *get_ibendport_nth(int idx)
113113
if (i != (unsigned int) idx)
114114
semanage_ibendport_free(records[i]);
115115

116+
free(records);
117+
116118
return ibendport;
117119
}
118120

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

137+
semanage_ibendport_free(ibendport);
138+
135139
return key;
136140
}
137141

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

149153
CU_ASSERT_FATAL(semanage_ibendport_modify_local(sh, key,
150154
ibendport) >= 0);
155+
156+
semanage_ibendport_key_free(key);
157+
semanage_ibendport_free(ibendport);
151158
}
152159

153160
void delete_local_ibendport(int idx)
154161
{
155162
semanage_ibendport_key_t *key = NULL;
156163
key = get_ibendport_key_nth(idx);
157164
CU_ASSERT_FATAL(semanage_ibendport_del_local(sh, key) >= 0);
165+
166+
semanage_ibendport_key_free(key);
158167
}
159168

160169
/* Function semanage_ibendport_query */
@@ -195,7 +204,9 @@ void test_ibendport_query(void)
195204
CU_ASSERT_CONTEXT_EQUAL(con, con_exp);
196205

197206
/* cleanup */
207+
free(name_exp);
198208
free(name);
209+
semanage_ibendport_key_free(key);
199210
semanage_ibendport_free(ibendport);
200211
semanage_ibendport_free(ibendport_exp);
201212
cleanup_handle(SH_CONNECT);
@@ -362,6 +373,8 @@ void test_ibendport_modify_del_query_local(void)
362373
&ibendport_local) < 0);
363374

364375
/* cleanup */
376+
semanage_ibendport_key_free(key);
377+
semanage_ibendport_free(ibendport_local);
365378
semanage_ibendport_free(ibendport);
366379
cleanup_handle(SH_TRANS);
367380
}

0 commit comments

Comments
 (0)