aboutsummaryrefslogtreecommitdiffstats
path: root/src/libosmo-mgcp/mgcp_codec.c
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2019-08-08 22:07:31 +0200
committerneels <nhofmeyr@sysmocom.de>2019-08-27 21:53:17 +0000
commitce64f185875b902abe02892b76af7bc3d4d7df3b (patch)
treebd21a4167d0a2915eecea62a4eab63abdedcd1df /src/libosmo-mgcp/mgcp_codec.c
parent667fa59b0c233f9f874cf2a04c32879b558708b7 (diff)
fix memleak: actually free strings in mgcp_codec_reset_all()
The audio_name and subtype_name are allocated from talloc, so they need to be freed before resetting the codec array. Use mgcp_codec_free() to ensure this. Change-Id: I07f207dcb7ce66bbf3445a30af41e696677b384f
Diffstat (limited to 'src/libosmo-mgcp/mgcp_codec.c')
-rw-r--r--src/libosmo-mgcp/mgcp_codec.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libosmo-mgcp/mgcp_codec.c b/src/libosmo-mgcp/mgcp_codec.c
index 30c185cbb..7f1a6d126 100644
--- a/src/libosmo-mgcp/mgcp_codec.c
+++ b/src/libosmo-mgcp/mgcp_codec.c
@@ -100,7 +100,9 @@ static void codec_free(struct mgcp_rtp_codec *codec)
* \param[out] conn related rtp-connection. */
void mgcp_codec_reset_all(struct mgcp_conn_rtp *conn)
{
- memset(conn->end.codecs, 0, sizeof(conn->end.codecs));
+ int i;
+ for (i = 0; i < conn->end.codecs_assigned; i++)
+ codec_free(&conn->end.codecs[i]);
conn->end.codecs_assigned = 0;
conn->end.codec = NULL;
}