aboutsummaryrefslogtreecommitdiffstats
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
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
-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 */