diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2019-08-08 22:07:31 +0200 |
---|---|---|
committer | neels <nhofmeyr@sysmocom.de> | 2019-08-27 21:53:17 +0000 |
commit | ce64f185875b902abe02892b76af7bc3d4d7df3b (patch) | |
tree | bd21a4167d0a2915eecea62a4eab63abdedcd1df /src/libosmo-mgcp/mgcp_codec.c | |
parent | 667fa59b0c233f9f874cf2a04c32879b558708b7 (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.c | 4 |
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; } |