From 6d344d5190b705e6783fa71ffaa3cffb8d7c7c5c Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Thu, 28 Apr 2016 12:57:10 +0200 Subject: Fix memory leakage in gsup_server Once a remote IPA client is gone, we need to remove the associated osmo_gsup_conn object. --- osmo-gsup-hlr/src/gsup_server.c | 5 +++-- 1 file 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; -- cgit v1.2.3