aboutsummaryrefslogtreecommitdiffstats
path: root/library/BSSAP_CodecPort.ttcn
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2017-12-10 13:48:17 +0100
committerHarald Welte <laforge@gnumonks.org>2017-12-10 13:48:17 +0100
commit510a287a5e4864ac890ce30949e2824766d1b868 (patch)
treeac1acdfa42a2a63adfc66d6a533a18954748f9fa /library/BSSAP_CodecPort.ttcn
parentd8c36cda22c80cc19415bbe0ea1b5a57c7738f9e (diff)
BSSAP_CodecPort: Don't dereference optional fields unconditionally
Diffstat (limited to 'library/BSSAP_CodecPort.ttcn')
-rw-r--r--library/BSSAP_CodecPort.ttcn24
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);