<p>laforge has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/libosmocore/+/23410">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">gprs_ns2_sns: Verify mandatory IE presence in incoming SNS-SIZE<br><br>Change-Id: I40571e313c3332d8cead8fb4aa9768d0d083804d<br>---<br>M src/gb/gprs_ns2_sns.c<br>1 file changed, 11 insertions(+), 2 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/10/23410/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c</span><br><span>index e60664b..c2c5b5e 100644</span><br><span>--- a/src/gb/gprs_ns2_sns.c</span><br><span>+++ b/src/gb/gprs_ns2_sns.c</span><br><span>@@ -2123,14 +2123,23 @@</span><br><span>  struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv;</span><br><span>    struct tlv_parsed *tp = NULL;</span><br><span>        uint8_t flag;</span><br><span style="color: hsl(120, 100%, 40%);">+ uint8_t cause;</span><br><span> </span><br><span>   OSMO_ASSERT(gss->role == GPRS_SNS_ROLE_SGSN);</span><br><span> </span><br><span>         switch (event) {</span><br><span>     case GPRS_SNS_EV_RX_SIZE:</span><br><span>            tp = (struct tlv_parsed *) data;</span><br><span style="color: hsl(0, 100%, 40%);">-                if (!TLVP_PRES_LEN(tp, NS_IE_RESET_FLAG, 1)) {</span><br><span style="color: hsl(0, 100%, 40%);">-                  uint8_t cause = NS_CAUSE_MISSING_ESSENT_IE;</span><br><span style="color: hsl(120, 100%, 40%);">+           /* check for mandatory / conditional IEs */</span><br><span style="color: hsl(120, 100%, 40%);">+           if (!TLVP_PRES_LEN(tp, NS_IE_RESET_FLAG, 1) ||</span><br><span style="color: hsl(120, 100%, 40%);">+                    !TLVP_PRES_LEN(tp, NS_IE_MAX_NR_NSVC, 2)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                       cause = NS_CAUSE_MISSING_ESSENT_IE;</span><br><span style="color: hsl(120, 100%, 40%);">+                   ns2_tx_sns_size_ack(gss->sns_nsvc, &cause);</span><br><span style="color: hsl(120, 100%, 40%);">+                    break;</span><br><span style="color: hsl(120, 100%, 40%);">+                }</span><br><span style="color: hsl(120, 100%, 40%);">+             if (!TLVP_PRES_LEN(tp, NS_IE_IPv4_EP_NR, 2) &&</span><br><span style="color: hsl(120, 100%, 40%);">+                    !TLVP_PRES_LEN(tp, NS_IE_IPv6_EP_NR, 2)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                        cause = NS_CAUSE_MISSING_ESSENT_IE;</span><br><span>                  ns2_tx_sns_size_ack(gss->sns_nsvc, &cause);</span><br><span>                   break;</span><br><span>               }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/libosmocore/+/23410">change 23410</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/libosmocore/+/23410"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: libosmocore </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I40571e313c3332d8cead8fb4aa9768d0d083804d </div>
<div style="display:none"> Gerrit-Change-Number: 23410 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>