aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2010-02-08 20:14:53 +0100
committerHolger Hans Peter Freyther <zecke@selfish.org>2010-02-08 20:14:53 +0100
commitfdc64f680679accb60f295f0c1712076877bd016 (patch)
tree2572d4221daf34e27425ded84b38df68568d2f04
parentab46372e2a2b381856cf6e6848497ce9f3b0ad2e (diff)
[bsc_msc_ip] Fix the re-queuing of packets...on-waves/0.3.1
* The MSC is sending us the next 04.08 packet before we have received the answer for the cipher model complete. The code was supposed to copy all packets from the current queue, to a new queue and then send the packets again. * This would (re)establish the different SAPIs. Now the requeuing code was grabbing the packet from the empty queue (NULL pointer) and we were dereferencing it. It appears that we need to use "head" until the queue is empty.
-rw-r--r--openbsc/configure.in2
-rw-r--r--openbsc/src/bssap.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/openbsc/configure.in b/openbsc/configure.in
index e6f525b0..f44561d6 100644
--- a/openbsc/configure.in
+++ b/openbsc/configure.in
@@ -1,7 +1,7 @@
dnl Process this file with autoconf to produce a configure script
AC_INIT
-AM_INIT_AUTOMAKE(openbsc, 0.3onwaves)
+AM_INIT_AUTOMAKE(openbsc, 0.3.1onwaves)
dnl kernel style compile messages
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
diff --git a/openbsc/src/bssap.c b/openbsc/src/bssap.c
index 3a966f23..3a283666 100644
--- a/openbsc/src/bssap.c
+++ b/openbsc/src/bssap.c
@@ -1260,7 +1260,7 @@ void bts_unblock_queue(struct bss_sccp_connection_data *data)
/* now queue them again to send RSL establish and such */
while (!llist_empty(&head)) {
- msg = msgb_dequeue(&data->gsm_queue);
+ msg = msgb_dequeue(&head);
bts_queue_send(msg, (int) msg->smsh);
}
}