From c5c239f3615149619b4c51ecc76006562d5a6a12 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Mon, 7 Jul 2014 20:38:27 +0200 Subject: mgcp: Fix memory leak in the transcoding code The GSM handle was never released. This was found using valgrind and the leak check. ==14933== 752 bytes in 1 blocks are definitely lost in loss record 15 of 19 ==14933== at 0x4028B4C: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==14933== by 0x4130201: gsm_create (in /usr/lib/i386-linux-gnu/libgsm.so.1.0.12) ==14933== by 0x80517AE: mgcp_transcoding_setup (mgcp_transcode.c:199) ==14933== by 0x8049691: given_configured_endpoint.isra.1 (mgcp_transcoding_test.c:198) ==14933== by 0x8049C11: test_transcode_result (mgcp_transcoding_test.c:328) ==14933== by 0x8049418: main (mgcp_transcoding_test.c:582) --- openbsc/src/libmgcp/mgcp_transcode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'openbsc') diff --git a/openbsc/src/libmgcp/mgcp_transcode.c b/openbsc/src/libmgcp/mgcp_transcode.c index 581cd3293..b76c5d9ac 100644 --- a/openbsc/src/libmgcp/mgcp_transcode.c +++ b/openbsc/src/libmgcp/mgcp_transcode.c @@ -154,7 +154,7 @@ static int processing_state_destructor(struct mgcp_process_rtp_state *state) { switch (state->src_fmt) { case AF_GSM: - if (state->dst.gsm_handle) + if (state->src.gsm_handle) gsm_destroy(state->src.gsm_handle); break; #ifdef HAVE_BCG729 -- cgit v1.2.3