summaryrefslogtreecommitdiffstats
path: root/osmo-gsup-hlr
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2016-04-28 12:57:10 +0200
committerHarald Welte <laforge@gnumonks.org>2016-04-28 12:57:10 +0200
commit6d344d5190b705e6783fa71ffaa3cffb8d7c7c5c (patch)
treea60b0a58ece0cfeb263c0f20146b90860b9e99a6 /osmo-gsup-hlr
parent19c8c2c9b13ad2c33ea59fcd2fbebe56189b7c23 (diff)
Fix memory leakage in gsup_server
Once a remote IPA client is gone, we need to remove the associated osmo_gsup_conn object.
Diffstat (limited to 'osmo-gsup-hlr')
-rw-r--r--osmo-gsup-hlr/src/gsup_server.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/osmo-gsup-hlr/src/gsup_server.c b/osmo-gsup-hlr/src/gsup_server.c
index f5515e3..b9a21ab 100644
--- a/osmo-gsup-hlr/src/gsup_server.c
+++ b/osmo-gsup-hlr/src/gsup_server.c
@@ -120,6 +120,7 @@ static int osmo_gsup_server_closed_cb(struct ipa_server_conn *conn)
conn->addr, conn->port);
llist_del(&clnt->list);
+ talloc_free(clnt);
return 0;
}
@@ -132,10 +133,10 @@ static int osmo_gsup_server_accept_cb(struct ipa_server_link *link, int fd)
(struct osmo_gsup_server *) link->data;
int rc;
- conn = talloc_zero(link->data, struct osmo_gsup_conn);
+ conn = talloc_zero(gsups, struct osmo_gsup_conn);
OSMO_ASSERT(conn);
- conn->conn = ipa_server_conn_create(conn, link, fd,
+ conn->conn = ipa_server_conn_create(gsups, link, fd,
osmo_gsup_server_read_cb,
osmo_gsup_server_closed_cb, conn);
conn->conn->ccm_cb = osmo_gsup_server_ccm_cb;