From 1100a9d1fa38fbd931c7acfacdf1f2fa1d26627e Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Wed, 19 May 2010 16:01:39 +0200 Subject: [PATCH] [GPRS] NS: Never respond to STATUS with STATUS to prevent loops! --- openbsc/src/gprs/gprs_ns.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/openbsc/src/gprs/gprs_ns.c b/openbsc/src/gprs/gprs_ns.c index 9d0766c6d..04d17b8ed 100644 --- a/openbsc/src/gprs/gprs_ns.c +++ b/openbsc/src/gprs/gprs_ns.c @@ -657,6 +657,12 @@ int gprs_ns_rcvmsg(struct gprs_ns_inst *nsi, struct msgb *msg, if (!nsvc) { struct tlv_parsed tp; uint16_t nsei; + if (nsh->pdu_type == NS_PDUT_STATUS) { + LOGP(DNS, LOGL_INFO, "Ignoring NS STATUS from %s:%u " + "for non-existing NS-VC\n", + inet_ntoa(saddr->sin_addr), ntohs(saddr->sin_port)); + return 0; + } /* Only the RESET procedure creates a new NSVC */ if (nsh->pdu_type != NS_PDUT_RESET) { /* Since we have no NSVC, we have to use a fake */