<p>fixeria has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ggsn/+/15367">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">gtp_update_pdp_ind(): fix NULL-pointer dereference<br><br>As stated in the comment above, we need to use the tunnel identifier<br>to find a GTP context, and derive both IMSI and NSAPI from that TID,<br>when speaking GTP version 0.<br><br>This change fixes the following warnings (found with Clang):<br><br>  gtp.c:2115:22: warning: variable 'pdp' is uninitialized<br>                          when used here [-Wuninitialized]<br>             pdp_set_imsi_nsapi(pdp, tid);<br>                                    ^^^<br><br>  gtp.c:2118:34: warning: variable 'imsi' is uninitialized<br>                   when used here [-Wuninitialized]<br>             if (gtp_pdp_getimsi(gsn, &pdp, imsi, nsapi))<br>                                             ^^^^<br><br>  gtp.c:2118:40: warning: variable 'nsapi' is uninitialized<br>                     when used here [-Wuninitialized]<br>             if (gtp_pdp_getimsi(gsn, &pdp, imsi, nsapi))<br>                                                   ^^^^^<br><br>Change-Id: I8f1c8d0ba2e8189d97fe1bb5c872680e5ad1cd7a<br>---<br>M gtp/gtp.c<br>1 file changed, 4 insertions(+), 5 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ggsn refs/changes/67/15367/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/gtp/gtp.c b/gtp/gtp.c</span><br><span>index 2ea949d..b18f76f 100644</span><br><span>--- a/gtp/gtp.c</span><br><span>+++ b/gtp/gtp.c</span><br><span>@@ -2110,12 +2110,8 @@</span><br><span>   /* For GTP1 we must use imsi and nsapi if imsi is present. Otherwise */</span><br><span>      /* we have to use the tunnel endpoint identifier */</span><br><span>  if (version == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-             uint64_t tid = be64toh(((union gtp_packet *)pack)->gtp0.h.tid);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-              pdp_set_imsi_nsapi(pdp, tid);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>                /* Find the context in question */</span><br><span style="color: hsl(0, 100%, 40%);">-              if (gtp_pdp_getimsi(gsn, &pdp, imsi, nsapi)) {</span><br><span style="color: hsl(120, 100%, 40%);">+            if (gtp_pdp_tidget(gsn, &pdp, get_tid(pack))) {</span><br><span>                  gsn->err_unknownpdp++;</span><br><span>                    GTP_LOGPKG(LOGL_ERROR, peer, pack,</span><br><span>                               len, "Unknown PDP context\n");</span><br><span>@@ -2123,6 +2119,9 @@</span><br><span>                                                    len, NULL,</span><br><span>                                                   GTPCAUSE_NON_EXIST);</span><br><span>              }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+           /* Update IMSI and NSAPI */</span><br><span style="color: hsl(120, 100%, 40%);">+           pdp_set_imsi_nsapi(pdp, get_tid(pack));</span><br><span>      } else if (version == 1) {</span><br><span>           /* NSAPI (mandatory) */</span><br><span>              if (gtpie_gettv1(ie, GTPIE_NSAPI, 0, &nsapi)) {</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ggsn/+/15367">change 15367</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-ggsn/+/15367"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ggsn </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I8f1c8d0ba2e8189d97fe1bb5c872680e5ad1cd7a </div>
<div style="display:none"> Gerrit-Change-Number: 15367 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>