From 91813cf2148f4152ff3f4c3e1ae37f16dd1c39ff Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Wed, 12 May 2010 18:38:45 +0000 Subject: GPRS: We have to do the msgb_free() in NS not Gb Proxy As only NS-UNITDATA messages are ever passed into the Gb Proxy, we need to do the msgb_free() at a much higher point in the calling stack, i.e. inside the NS protocol layer. This means it is now the same logic as in OpenBSC itself. --- openbsc/src/gprs/gprs_ns.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/openbsc/src/gprs/gprs_ns.c b/openbsc/src/gprs/gprs_ns.c index 1b9d7c6d..11637f7f 100644 --- a/openbsc/src/gprs/gprs_ns.c +++ b/openbsc/src/gprs/gprs_ns.c @@ -793,7 +793,11 @@ static int handle_nsip_read(struct bsc_fd *bfd) if (!msg) return error; - return gprs_ns_rcvmsg(nsi, msg, &saddr); + error = gprs_ns_rcvmsg(nsi, msg, &saddr); + + msgb_free(msg); + + return error; } static int handle_nsip_write(struct bsc_fd *bfd) -- cgit v1.2.3