aboutsummaryrefslogtreecommitdiffstats
path: root/src/sccp_scrc.c
diff options
context:
space:
mode:
authorStefan Sperling <ssperling@sysmocom.de>2018-06-05 19:10:43 +0200
committerStefan Sperling <ssperling@sysmocom.de>2018-06-05 19:13:10 +0200
commitee770e5b5d9b91266177b0689f671e13d4eb087d (patch)
tree261d79a25a6e471859f9aaf051a26931fb357f15 /src/sccp_scrc.c
parent3baa5da96d48b889a448ccbb1d3c841960a40bb8 (diff)
fix infinite recursion with routing by global title
We don't implement routing by global title address. When processing an SCCP message which is routed by global title, don't recurs indefinitely until the stack is exhausted. Instead, return an error with cause SUBSYSTEM_FAILURE, which we also do in other routing failure cases. Change-Id: I24621e77ffc979bc337775f9c6a4ad9a9068625a Related: OS#2666
Diffstat (limited to 'src/sccp_scrc.c')
-rw-r--r--src/sccp_scrc.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/sccp_scrc.c b/src/sccp_scrc.c
index dca5645..cd01774 100644
--- a/src/sccp_scrc.c
+++ b/src/sccp_scrc.c
@@ -279,8 +279,15 @@ static int scrc_translate_node_9(struct osmo_sccp_instance *inst,
translated.ri != OSMO_SCCP_RI_SSN_IP) {
/* TODO: GT Routing */
LOGP(DLSCCP, LOGL_NOTICE, "GT Routing not implemented yet\n");
+#if 1
+ /* Prevent endless recursion, see OS#2666. */
+ sccp_sclc_rx_scrc_rout_fail(inst, xua,
+ SCCP_RETURN_CAUSE_SUBSYSTEM_FAILURE);
+ return 0;
+#else
/* Node 7 (Sheet 5) */
return scrc_node_7(inst, xua, called);
+#endif
}
/* Check DPC resultant from GT translation */