aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/libctrl
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2012-12-22 18:45:27 +0100
committerHolger Hans Peter Freyther <zecke@selfish.org>2012-12-22 18:45:27 +0100
commit3e9b2ec257bc064b866ce6a2735206dc6131f615 (patch)
treef6a4dbeda9c65b38956c9ad46d15c789016b0249 /openbsc/src/libctrl
parent405824c057d11843f29100124b38f9426101d8e8 (diff)
libmsc: Avoid a crash on lchan release during call control
If subscriber A is calling B and has sent a CC Setup message we will allocate the MO and MT transaction and link them together. When the BTS or the lchan is failing the BSC API will send a clear request, as part of the clear request all pending transactions will be released. As part of taking down the transaction, the remote leg will be informed and will send a MNCC_REL_REQ. This results in a call to trans_free. The llist_for_each_entry_safe does not handle removing other elements from the list and we would segfault. One way to fix this is to move the transaction list into the subscriber connection. This might require to create the subscriber connection for MT handling earlier. Otherwise one could have one transaction list inside the subscriber connection and a global list for MT- transactions.
Diffstat (limited to 'openbsc/src/libctrl')
0 files changed, 0 insertions, 0 deletions