diff --git a/lib/asn1/check-der.c b/lib/asn1/check-der.c index 467fd361a..826a0a4f8 100644 --- a/lib/asn1/check-der.c +++ b/lib/asn1/check-der.c @@ -71,7 +71,7 @@ test_integer (void) int values[] = {0, 127, 128, 256, -128, -129, -1, -255, 255, 0x80000000, 0x7fffffff}; - int i; + int i, ret; int ntests = sizeof(tests) / sizeof(*tests); for (i = 0; i < ntests; ++i) { @@ -81,12 +81,17 @@ test_integer (void) errx(1, "malloc"); } - return generic_test (tests, ntests, sizeof(int), - (generic_encode)der_put_integer, + ret = generic_test (tests, ntests, sizeof(int), + (generic_encode)der_put_integer, (generic_length) der_length_integer, (generic_decode)der_get_integer, (generic_free)NULL, cmp_integer); + + for (i = 0; i < ntests; ++i) + free (tests[i].name); + + return ret; } static int @@ -657,6 +662,8 @@ check_heim_integer_same(const char *p, const char *norm_p, heim_integer *i) if (der_heim_integer_cmp(i, &i2) != 0) errx(1, "der_heim_integer_cmp: norm"); + der_free_heim_integer(&i2); + return 0; } diff --git a/lib/asn1/check-gen.c b/lib/asn1/check-gen.c index 32f404977..8573a7c28 100644 --- a/lib/asn1/check-gen.c +++ b/lib/asn1/check-gen.c @@ -115,7 +115,7 @@ test_principal (void) { { KRB5_NT_PRINCIPAL, { 2, lharoot_princ } }, "SU.SE" }, { { KRB5_NT_SRV_HST, { 2, datan_princ } }, "E.KTH.SE" } }; - int i; + int i, ret; int ntests = sizeof(tests) / sizeof(*tests); for (i = 0; i < ntests; ++i) { @@ -123,12 +123,16 @@ test_principal (void) asprintf (&tests[i].name, "Principal %d", i); } - return generic_test (tests, ntests, sizeof(Principal), - (generic_encode)encode_Principal, - (generic_length)length_Principal, - (generic_decode)decode_Principal, - (generic_free)free_Principal, - cmp_principal); + ret = generic_test (tests, ntests, sizeof(Principal), + (generic_encode)encode_Principal, + (generic_length)length_Principal, + (generic_decode)decode_Principal, + (generic_free)free_Principal, + cmp_principal); + for (i = 0; i < ntests; ++i) + free (tests[i].name); + + return ret; } static int @@ -688,6 +692,8 @@ test_taglessalloc (void) (generic_free)free_TESTAlloc, cmp_TESTAlloc); + free(c1.tagless) + return ret; }