<p>daniel <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-gbproxy/+/26064">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  pespin: Looks good to me, but someone else must approve
  laforge: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">gbproxy: Only use one struct tlv_parsed for gbproxy_decode_bssgp<br><br>Change-Id: I7965a4b68866c619159c524a63e051b0d9cbe80f<br>---<br>M src/gb_proxy.c<br>1 file changed, 10 insertions(+), 10 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/gb_proxy.c b/src/gb_proxy.c</span><br><span>index 0fa8be3..9845a09 100644</span><br><span>--- a/src/gb_proxy.c</span><br><span>+++ b/src/gb_proxy.c</span><br><span>@@ -1009,18 +1009,18 @@</span><br><span>   int pdu_len = TLVP_LEN(&tp[0], BSSGP_IE_PDU_IN_ERROR);</span><br><span>   const uint8_t *pdu_data = TLVP_VAL(&tp[0], BSSGP_IE_PDU_IN_ERROR);</span><br><span>       struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *)pdu_data;</span><br><span style="color: hsl(0, 100%, 40%);">-    struct tlv_parsed tp_inner[2];</span><br><span style="color: hsl(120, 100%, 40%);">+        struct tlv_parsed tp_inner;</span><br><span> </span><br><span>      /* TODO: Parse partial messages as well */</span><br><span style="color: hsl(0, 100%, 40%);">-      rc = gbproxy_decode_bssgp(bgph, pdu_len, &tp_inner[0], log_pfx);</span><br><span style="color: hsl(120, 100%, 40%);">+  rc = gbproxy_decode_bssgp(bgph, pdu_len, &tp_inner, log_pfx);</span><br><span>    if (rc < 0)</span><br><span>               return rc;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  if (TLVP_PRESENT(&tp_inner[0], BSSGP_IE_TLLI)) {</span><br><span style="color: hsl(0, 100%, 40%);">-            *tlli = osmo_load32be(TLVP_VAL(&tp_inner[0], BSSGP_IE_TLLI));</span><br><span style="color: hsl(0, 100%, 40%);">-       } else if (TLVP_PRESENT(&tp_inner[0], BSSGP_IE_TMSI)) {</span><br><span style="color: hsl(120, 100%, 40%);">+   if (TLVP_PRESENT(&tp_inner, BSSGP_IE_TLLI)) {</span><br><span style="color: hsl(120, 100%, 40%);">+             *tlli = osmo_load32be(TLVP_VAL(&tp_inner, BSSGP_IE_TLLI));</span><br><span style="color: hsl(120, 100%, 40%);">+        } else if (TLVP_PRESENT(&tp_inner, BSSGP_IE_TMSI)) {</span><br><span>             /* we treat the TMSI like a TLLI and extract the NRI from it */</span><br><span style="color: hsl(0, 100%, 40%);">-         *tlli = osmo_load32be(TLVP_VAL(&tp_inner[0], BSSGP_IE_TMSI));</span><br><span style="color: hsl(120, 100%, 40%);">+             *tlli = osmo_load32be(TLVP_VAL(&tp_inner, BSSGP_IE_TMSI));</span><br><span>               /* Convert the TMSI into a FOREIGN TLLI so it is routed appropriately */</span><br><span>             *tlli = gprs_tmsi2tlli(*tlli, TLLI_FOREIGN);</span><br><span>         } else {</span><br><span>@@ -1037,15 +1037,15 @@</span><br><span>   int pdu_len = TLVP_LEN(&tp[0], BSSGP_IE_PDU_IN_ERROR);</span><br><span>   const uint8_t *pdu_data = TLVP_VAL(&tp[0], BSSGP_IE_PDU_IN_ERROR);</span><br><span>       struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *)pdu_data;</span><br><span style="color: hsl(0, 100%, 40%);">-    struct tlv_parsed tp_inner[2];</span><br><span style="color: hsl(120, 100%, 40%);">+        struct tlv_parsed tp_inner;</span><br><span> </span><br><span>      /* TODO: Parse partial messages as well */</span><br><span style="color: hsl(0, 100%, 40%);">-      rc = gbproxy_decode_bssgp(bgph, pdu_len, &tp_inner[0], log_pfx);</span><br><span style="color: hsl(120, 100%, 40%);">+  rc = gbproxy_decode_bssgp(bgph, pdu_len, &tp_inner, log_pfx);</span><br><span>    if (rc < 0)</span><br><span>               return rc;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  if (TLVP_PRESENT(&tp_inner[0], BSSGP_IE_BVCI))</span><br><span style="color: hsl(0, 100%, 40%);">-              *bvci = ntohs(tlvp_val16_unal(&tp_inner[0], BSSGP_IE_BVCI));</span><br><span style="color: hsl(120, 100%, 40%);">+      if (TLVP_PRESENT(&tp_inner, BSSGP_IE_BVCI))</span><br><span style="color: hsl(120, 100%, 40%);">+               *bvci = ntohs(tlvp_val16_unal(&tp_inner, BSSGP_IE_BVCI));</span><br><span>        else</span><br><span>                 return -ENOENT;</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-gbproxy/+/26064">change 26064</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/osmo-gbproxy/+/26064"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-gbproxy </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I7965a4b68866c619159c524a63e051b0d9cbe80f </div>
<div style="display:none"> Gerrit-Change-Number: 26064 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: daniel <dwillmann@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: daniel <dwillmann@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: lynxis lazus <lynxis@fe80.eu> </div>
<div style="display:none"> Gerrit-Reviewer: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>