<p>Stefan Sperling has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/11630">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">prevent a NULL pointer dereference in debug_candidate()<br><br>Prevent a potential NULL pointer dereference in debug logging<br>of the handover decision 2 implementation. The existing logic<br>didn't correctly account for the fact that bts->candidate may<br>be a NULL pointer.<br><br>Change-Id: Ie3d672d835bbc136809e593a819a6dda7c84a88e<br>Related: CID#188880<br>---<br>M src/osmo-bsc/handover_decision_2.c<br>1 file changed, 15 insertions(+), 12 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/30/11630/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c</span><br><span>index a8fff63..833b1d0 100644</span><br><span>--- a/src/osmo-bsc/handover_decision_2.c</span><br><span>+++ b/src/osmo-bsc/handover_decision_2.c</span><br><span>@@ -827,18 +827,21 @@</span><br><span>                                  "RX level %d -> %d\n",</span><br><span>                                  rxlev2dbm(rxlev), rxlev2dbm(candidate->avg));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        if (candidate->bts == lchan->ts->trx->bts)</span><br><span style="color: hsl(0, 100%, 40%);">-          LOGPHOLCHANTOBTS(lchan, candidate->bts, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">-               "RX level %d; "</span><br><span style="color: hsl(0, 100%, 40%);">-               HO_CANDIDATE_FMT(f, F) "; " HO_CANDIDATE_FMT(h, H) "\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                    rxlev2dbm(candidate->avg),</span><br><span style="color: hsl(0, 100%, 40%);">-                   HO_CANDIDATE_ARGS(f, F), HO_CANDIDATE_ARGS(h, H));</span><br><span style="color: hsl(0, 100%, 40%);">- else if (candidate->bts)</span><br><span style="color: hsl(0, 100%, 40%);">-             LOGPHOLCHANTOBTS(lchan, candidate->bts, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">-               "RX level %d -> %d; "</span><br><span style="color: hsl(0, 100%, 40%);">-              HO_CANDIDATE_FMT(f, F) "; " HO_CANDIDATE_FMT(h, H) "\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                    rxlev2dbm(rxlev), rxlev2dbm(candidate->avg),</span><br><span style="color: hsl(0, 100%, 40%);">-                 HO_CANDIDATE_ARGS(f, F), HO_CANDIDATE_ARGS(h, H));</span><br><span style="color: hsl(120, 100%, 40%);">+       if (candidate->bts) {</span><br><span style="color: hsl(120, 100%, 40%);">+              if (candidate->bts == lchan->ts->trx->bts) {</span><br><span style="color: hsl(120, 100%, 40%);">+                      LOGPHOLCHANTOBTS(lchan, candidate->bts, LOGL_DEBUG,</span><br><span style="color: hsl(120, 100%, 40%);">+                             "RX level %d; "</span><br><span style="color: hsl(120, 100%, 40%);">+                             HO_CANDIDATE_FMT(f, F) "; " HO_CANDIDATE_FMT(h, H) "\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                          rxlev2dbm(candidate->avg),</span><br><span style="color: hsl(120, 100%, 40%);">+                         HO_CANDIDATE_ARGS(f, F), HO_CANDIDATE_ARGS(h, H));</span><br><span style="color: hsl(120, 100%, 40%);">+               } else {</span><br><span style="color: hsl(120, 100%, 40%);">+                      LOGPHOLCHANTOBTS(lchan, candidate->bts, LOGL_DEBUG,</span><br><span style="color: hsl(120, 100%, 40%);">+                             "RX level %d -> %d; "</span><br><span style="color: hsl(120, 100%, 40%);">+                            HO_CANDIDATE_FMT(f, F) "; " HO_CANDIDATE_FMT(h, H) "\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                          rxlev2dbm(rxlev), rxlev2dbm(candidate->avg),</span><br><span style="color: hsl(120, 100%, 40%);">+                       HO_CANDIDATE_ARGS(f, F), HO_CANDIDATE_ARGS(h, H));</span><br><span style="color: hsl(120, 100%, 40%);">+               }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span> }</span><br><span> </span><br><span> /* add candidate for re-assignment within the current cell */</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/11630">change 11630</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/11630"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bsc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: Ie3d672d835bbc136809e593a819a6dda7c84a88e </div>
<div style="display:none"> Gerrit-Change-Number: 11630 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Stefan Sperling <ssperling@sysmocom.de> </div>