laforge has submitted this change. ( 
https://gerrit.osmocom.org/c/libosmo-sigtran/+/43387?usp=email )

Change subject: m3ua: Validate IE lengths of ASPTM & ASPSM messages [2/6]
......................................................................

m3ua: Validate IE lengths of ASPTM & ASPSM messages [2/6]

Since all IEs in APTM and ASPSM messages are Optional, and until
recently we only validated presence of mandatory IEs, there were no
related structs for such messages.
Now that we validate lengths of IEs, add the definitions for those
messages too.

Related: OS#7074
Reported-By: Tristan Madani <[email protected]>
Change-Id: I27406eac5b82c1e6702961bb3482b0bf7fe4ff15
---
M src/m3ua.c
1 file changed, 64 insertions(+), 0 deletions(-)

Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, approved
  osmith: Looks good to me, but someone else must approve




diff --git a/src/m3ua.c b/src/m3ua.c
index 9b92395..f500883 100644
--- a/src/m3ua.c
+++ b/src/m3ua.c
@@ -163,6 +163,12 @@
 #define M3UA_MSG_PART_CLASS_DIAG_INFO(mandatory) \
        XUA_MSG_PART_CLASS_UNBOUND(M3UA_IEI_DIAG_INFO, (mandatory))

+#define M3UA_MSG_PART_CLASS_HEARDBT_DATA(mandatory) \
+       XUA_MSG_PART_CLASS_UNBOUND(M3UA_IEI_HEARDBT_DATA, (mandatory))
+
+#define M3UA_MSG_PART_CLASS_TRAF_MODE_TYP(mandatory) \
+       XUA_MSG_PART_CLASS_U32(M3UA_IEI_TRAF_MODE_TYP, (mandatory))
+
 #define M3UA_MSG_PART_CLASS_ERR_CODE(mandatory) \
        XUA_MSG_PART_CLASS_U32(M3UA_IEI_ERR_CODE, (mandatory))
 
@@ -295,6 +301,28 @@
 };

 /* ASPSM */
+static const struct xua_msg_part_class m3ua_asp_up_ies[] = {
+       M3UA_MSG_PART_CLASS_ASP_ID(false),
+       M3UA_MSG_PART_CLASS_INFO_STRING(false),
+       XUA_MSG_PART_CLASS_EOF
+};
+static const struct xua_msg_part_class m3ua_asp_down_ies[] = {
+       M3UA_MSG_PART_CLASS_INFO_STRING(false),
+       XUA_MSG_PART_CLASS_EOF
+};
+static const struct xua_msg_part_class m3ua_beat_ies[] = {
+       M3UA_MSG_PART_CLASS_HEARDBT_DATA(false),
+       XUA_MSG_PART_CLASS_EOF
+};
+static const struct xua_msg_part_class m3ua_asp_up_ack_ies[] = {
+       M3UA_MSG_PART_CLASS_ASP_ID(false),
+       M3UA_MSG_PART_CLASS_INFO_STRING(false),
+       XUA_MSG_PART_CLASS_EOF
+};
+static const struct xua_msg_part_class m3ua_asp_down_ack_ies[] = {
+       M3UA_MSG_PART_CLASS_INFO_STRING(false),
+       XUA_MSG_PART_CLASS_EOF
+};
 static const struct value_string m3ua_aspsm_msgt_names[] = {
        { M3UA_ASPSM_UP,        "UP" },
        { M3UA_ASPSM_DOWN,      "DOWN" },
@@ -308,9 +336,39 @@
        .name = "ASPSM",
        .msgt_names = m3ua_aspsm_msgt_names,
        .iei_names = m3ua_iei_names,
+       .ies = {
+               IES(M3UA_ASPSM_UP, m3ua_asp_up_ies),
+               IES(M3UA_ASPSM_DOWN, m3ua_asp_down_ies),
+               IES(M3UA_ASPSM_BEAT, m3ua_beat_ies),
+               IES(M3UA_ASPSM_UP_ACK, m3ua_asp_up_ack_ies),
+               IES(M3UA_ASPSM_DOWN_ACK, m3ua_asp_down_ack_ies),
+               /* M3UA_ASPSM_BEAT_ACK has no IEs */
+       },
 };

 /* ASPTM */
+static const struct xua_msg_part_class m3ua_asp_act_ies[] = {
+       M3UA_MSG_PART_CLASS_TRAF_MODE_TYP(false),
+       M3UA_MSG_PART_CLASS_ROUTE_CTX(false),
+       M3UA_MSG_PART_CLASS_INFO_STRING(false),
+       XUA_MSG_PART_CLASS_EOF
+};
+static const struct xua_msg_part_class m3ua_asp_inact_ies[] = {
+       M3UA_MSG_PART_CLASS_ROUTE_CTX(false),
+       M3UA_MSG_PART_CLASS_INFO_STRING(false),
+       XUA_MSG_PART_CLASS_EOF
+};
+static const struct xua_msg_part_class m3ua_asp_act_ack_ies[] = {
+       M3UA_MSG_PART_CLASS_TRAF_MODE_TYP(false),
+       M3UA_MSG_PART_CLASS_ROUTE_CTX(false),
+       M3UA_MSG_PART_CLASS_INFO_STRING(false),
+       XUA_MSG_PART_CLASS_EOF
+};
+static const struct xua_msg_part_class m3ua_asp_inact_ack_ies[] = {
+       M3UA_MSG_PART_CLASS_ROUTE_CTX(false),
+       M3UA_MSG_PART_CLASS_INFO_STRING(false),
+       XUA_MSG_PART_CLASS_EOF
+};
 const struct value_string m3ua_asptm_msgt_names[] = {
        { M3UA_ASPTM_ACTIVE,    "ACTIVE" },
        { M3UA_ASPTM_INACTIVE,  "INACTIVE" },
@@ -322,6 +380,12 @@
        .name = "ASPTM",
        .msgt_names = m3ua_asptm_msgt_names,
        .iei_names = m3ua_iei_names,
+       .ies = {
+               IES(M3UA_ASPTM_ACTIVE, m3ua_asp_act_ies),
+               IES(M3UA_ASPTM_INACTIVE, m3ua_asp_inact_ies),
+               IES(M3UA_ASPTM_ACTIVE_ACK, m3ua_asp_act_ack_ies),
+               IES(M3UA_ASPTM_INACTIVE_ACK, m3ua_asp_inact_ack_ies),
+       },
 };

 /* MGMT */

--
To view, visit https://gerrit.osmocom.org/c/libosmo-sigtran/+/43387?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: merged
Gerrit-Project: libosmo-sigtran
Gerrit-Branch: master
Gerrit-Change-Id: I27406eac5b82c1e6702961bb3482b0bf7fe4ff15
Gerrit-Change-Number: 43387
Gerrit-PatchSet: 4
Gerrit-Owner: pespin <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-Reviewer: osmith <[email protected]>

Reply via email to