Review at  https://gerrit.osmocom.org/6888

RSL IPA DLCX: Avoid null-pointer dereference

In case a DLCX is issued without any CRCX before, let's handle this
gracefully and simply ack the DLCX anyway.

Change-Id: I7c5bedccfc5a7cf552a9ce3a2dc712081c7ce177
Closes: OS#2996
---
M src/common/rsl.c
1 file changed, 7 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/88/6888/1

diff --git a/src/common/rsl.c b/src/common/rsl.c
index 2d3f0d6..217393d 100644
--- a/src/common/rsl.c
+++ b/src/common/rsl.c
@@ -1904,11 +1904,13 @@
                inc_conn_id = 1;
 
        rc = rsl_tx_ipac_dlcx_ack(lchan, inc_conn_id);
-       osmo_rtp_socket_log_stats(lchan->abis_ip.rtp_socket, DRTP, LOGL_INFO,
-               "Closing RTP socket on DLCX ");
-       osmo_rtp_socket_free(lchan->abis_ip.rtp_socket);
-       lchan->abis_ip.rtp_socket = NULL;
-       msgb_queue_flush(&lchan->dl_tch_queue);
+       if (lchan->abis_ip.rtp_socket) {
+               osmo_rtp_socket_log_stats(lchan->abis_ip.rtp_socket, DRTP, 
LOGL_INFO,
+                                         "Closing RTP socket on DLCX ");
+               osmo_rtp_socket_free(lchan->abis_ip.rtp_socket);
+               lchan->abis_ip.rtp_socket = NULL;
+               msgb_queue_flush(&lchan->dl_tch_queue);
+       }
        return rc;
 }
 

-- 
To view, visit https://gerrit.osmocom.org/6888
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7c5bedccfc5a7cf552a9ce3a2dc712081c7ce177
Gerrit-PatchSet: 1
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <[email protected]>

Reply via email to