summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2010-05-12 18:38:45 +0000
committerHarald Welte <laforge@gnumonks.org>2010-05-12 20:53:42 +0200
commit91813cf2148f4152ff3f4c3e1ae37f16dd1c39ff (patch)
tree448e595921fd61341e241532d19d38fe96e62ba3
parentfe4ab901cc00f88e644e5640c2988f52c79f4183 (diff)
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.
-rw-r--r--openbsc/src/gprs/gprs_ns.c6
1 files changed, 5 insertions, 1 deletions
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)