From f7fef48e1bb0fafb1a9ef4e63eee3602c9db3826 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Mon, 28 Jun 2010 22:18:26 +0200 Subject: [SGSN] LLC: properly free LLC entities at TLLI unassignment --- openbsc/src/gprs/gprs_llc.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'openbsc/src/gprs/gprs_llc.c') diff --git a/openbsc/src/gprs/gprs_llc.c b/openbsc/src/gprs/gprs_llc.c index edb428583..f45bd325c 100644 --- a/openbsc/src/gprs/gprs_llc.c +++ b/openbsc/src/gprs/gprs_llc.c @@ -151,6 +151,12 @@ static struct gprs_llc_llme *llme_alloc(uint32_t tlli) return llme; } +static void llme_free(struct gprs_llc_llme *llme) +{ + llist_del(&llme->list); + talloc_free(llme); +} + enum gprs_llc_cmd { GPRS_LLC_NULL, GPRS_LLC_RR, @@ -732,6 +738,7 @@ int gprs_llgmm_assign(struct gprs_llc_llme *llme, struct gprs_llc_lle *l = &llme->lle[i]; l->state = GPRS_LLES_UNASSIGNED; } + llme_free(llme); } else return -EINVAL; -- cgit v1.2.3