TT#111150 Fix memory leaks in unit tests

Change-Id: Id0981af0c01f3a5c6f27435f7f92d3da90bf278e
pull/1216/head
Guillem Jover 5 years ago
parent 2311544499
commit 09cd962eef

@ -138,6 +138,11 @@ INLINE int crypto_decrypt_rtcp(struct crypto_context *c, struct rtcp_packet *rtc
INLINE int crypto_init_session_key(struct crypto_context *c) {
return c->params.crypto_suite->session_key_init(c);
}
INLINE int crypto_cleanup_session_key(struct crypto_context *c) {
if (c->params.crypto_suite->session_key_cleanup)
return c->params.crypto_suite->session_key_cleanup(c);
return 0;
}
INLINE void crypto_params_cleanup(struct crypto_params *p) {
if (p->mki)
@ -148,8 +153,7 @@ INLINE void crypto_cleanup(struct crypto_context *c) {
crypto_params_cleanup(&c->params);
if (!c->params.crypto_suite)
return;
if (c->params.crypto_suite->session_key_cleanup)
c->params.crypto_suite->session_key_cleanup(c);
crypto_cleanup_session_key(c);
c->have_session_key = 0;
c->params.crypto_suite = NULL;
}

@ -165,6 +165,8 @@ int main(void)
assert(memcmp(working, srtcp_pt, 52) == 0);
printf("RTCP/AEAD-AES-128-GCM Decrypt - PASS\n");
crypto_cleanup_session_key(&ctx);
// AES 256
str_init(&suite, "AEAD_AES_256_GCM");
c = crypto_find_suite(&suite);
@ -220,4 +222,6 @@ int main(void)
assert(rc == 0 && payload.len == 44);
assert(memcmp(working, srtcp_pt, 52) == 0);
printf("RTCP/AEAD-AES-256-GCM Decrypt - PASS\n");
crypto_cleanup_session_key(&ctx);
}

@ -234,6 +234,9 @@ int main(int argc, char** argv) {
c = crypto_find_suite(&suite);
assert(c);
crypto_cleanup_session_key(&ctx);
crypto_cleanup_session_key(&ctx2);
memset(&ctx, 0, sizeof(ctx));
ctx.params.crypto_suite = c;
memcpy(ctx.params.master_key, test_key, 24);
@ -257,6 +260,9 @@ int main(int argc, char** argv) {
c = crypto_find_suite(&suite);
assert(c);
crypto_cleanup_session_key(&ctx);
crypto_cleanup_session_key(&ctx2);
memset(&ctx, 0, sizeof(ctx));
ctx.params.crypto_suite = c;
memcpy(ctx.params.master_key, test_key, 32);
@ -276,6 +282,8 @@ int main(int argc, char** argv) {
srtp_validate(&ctx, &ctx2, "SRTP AES-CM-256", rtp_plaintext_ref, srtp_ciphertext_256,
rtcp_plaintext_ref, srtcp_ciphertext_256);
crypto_cleanup_session_key(&ctx);
crypto_cleanup_session_key(&ctx2);
memset(&ctx, 0, sizeof(ctx));
ctx.params.crypto_suite = c;
@ -288,4 +296,5 @@ int main(int argc, char** argv) {
srtp_validate(&ctx, NULL, "extra AES-CM-256", aes_256_rtp_plaintext_ref, aes_256_srtp_ciphertext,
NULL, NULL);
crypto_cleanup_session_key(&ctx);
}

@ -646,5 +646,7 @@ int main(int argc, char **argv) {
"code 0 level -99 delay 816, "))
abort();
dtmf_rx_free(dtmf_dsp);
return 0;
}

Loading…
Cancel
Save