diff options
author | Harald Welte <laforge@gnumonks.org> | 2017-12-10 13:48:17 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2017-12-10 13:48:17 +0100 |
commit | 510a287a5e4864ac890ce30949e2824766d1b868 (patch) | |
tree | ac1acdfa42a2a63adfc66d6a533a18954748f9fa /library/BSSAP_CodecPort.ttcn | |
parent | d8c36cda22c80cc19415bbe0ea1b5a57c7738f9e (diff) |
BSSAP_CodecPort: Don't dereference optional fields unconditionally
Diffstat (limited to 'library/BSSAP_CodecPort.ttcn')
-rw-r--r-- | library/BSSAP_CodecPort.ttcn | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/library/BSSAP_CodecPort.ttcn b/library/BSSAP_CodecPort.ttcn index 383f3d37..27056a44 100644 --- a/library/BSSAP_CodecPort.ttcn +++ b/library/BSSAP_CodecPort.ttcn @@ -215,7 +215,11 @@ private function f_dec_ConnectInd(in ASP_SCCP_N_CONNECT_ind pin, out BSSAP_N_CON pout.calledAddress := pin.calledAddress; pout.callingAddress := pin.callingAddress; pout.qualityOfService := pin.qualityOfService; - pout.userData := dec_PDU_BSSAP(pin.userData); + if (ispresent(pin.userData)) { + pout.userData := dec_PDU_BSSAP(pin.userData); + } else { + pout.userData := omit; + } pout.connectionId := pin.connectionId; pout.importance := pin.importance; //port.setstate(0); @@ -224,7 +228,11 @@ private function f_dec_ConnectInd(in ASP_SCCP_N_CONNECT_ind pin, out BSSAP_N_CON private function f_dec_ConnectCfm(in ASP_SCCP_N_CONNECT_cfm pin, out BSSAP_N_CONNECT_cfm pout) { pout.respondingAddress := pin.respondingAddress; pout.qualityOfService := pin.qualityOfService; - pout.userData := dec_PDU_BSSAP(pin.userData); + if (ispresent(pin.userData)) { + pout.userData := dec_PDU_BSSAP(pin.userData); + } else { + pout.userData := omit; + } pout.connectionId := pin.connectionId; pout.importance := pin.importance; //port.setstate(0); @@ -241,7 +249,11 @@ private function f_dec_DisconnectInd(in ASP_SCCP_N_DISCONNECT_ind pin, out BSSAP pout.originator := pin.originator; pout.respondingAddress := pin.respondingAddress; pout.reason := pin.reason; - pout.userData := dec_PDU_BSSAP(pin.userData); + if (ispresent(pin.userData)) { + pout.userData := dec_PDU_BSSAP(pin.userData); + } else { + pout.userData := omit; + } pout.connectionId := pin.connectionId; pout.importance := pin.importance; //port.setstate(0); @@ -273,7 +285,11 @@ private function f_enc_ConnectReq(in BSSAP_N_CONNECT_req pin, out ASP_SCCP_N_CON pout.callingAddress := pin.callingAddress; pout.expeditedDataSel := pin.expeditedDataSel; pout.qualityOfService := pin.qualityOfService; - pout.userData := enc_PDU_BSSAP(pin.userData); + if (ispresent(pin.userData)) { + pout.userData := enc_PDU_BSSAP(pin.userData); + } else { + pout.userData := omit; + } pout.connectionId := pin.connectionId; pout.importance := pin.importance; //port.setstate(0); |