<p>neels has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bsc/+/19761">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">mscpool: fix refcount leak for unusual case of no bts<br><br>by reading the code, I notice that a refcount on the subscr would be leaked if<br>there were no bts. That is not realistically happening, but nevertheless rather<br>rejigger so that no leak is possible, ever.<br><br>Change-Id: I0b804b8136cd78a777ca02667f696cdefa90c4a9<br>---<br>M src/osmo-bsc/gsm_08_08.c<br>1 file changed, 4 insertions(+), 3 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/61/19761/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c</span><br><span>index d5915f4..e7ef728 100644</span><br><span>--- a/src/osmo-bsc/gsm_08_08.c</span><br><span>+++ b/src/osmo-bsc/gsm_08_08.c</span><br><span>@@ -198,6 +198,7 @@</span><br><span>  bool is_emerg = false;</span><br><span>       int16_t nri_v = -1;</span><br><span>  bool is_null_nri = false;</span><br><span style="color: hsl(120, 100%, 40%);">+     struct gsm_bts *bts;</span><br><span> </span><br><span>     if (msgb_l3len(msg) < sizeof(*gh)) {</span><br><span>              LOGP(DRSL, LOGL_ERROR, "There is no GSM48 header here.\n");</span><br><span>@@ -221,10 +222,10 @@</span><br><span>        }</span><br><span> </span><br><span>        /* Has the subscriber been paged from a connected MSC? */</span><br><span style="color: hsl(0, 100%, 40%);">-       if (pdisc == GSM48_PDISC_RR && mtype == GSM48_MT_RR_PAG_RESP) {</span><br><span style="color: hsl(120, 100%, 40%);">+       bts = conn_get_bts(conn);</span><br><span style="color: hsl(120, 100%, 40%);">+     if (bts && pdisc == GSM48_PDISC_RR && mtype == GSM48_MT_RR_PAG_RESP) {</span><br><span>               subscr = bsc_subscr_find_by_mi(conn->network->bsc_subscribers, &mi);</span><br><span style="color: hsl(0, 100%, 40%);">-          struct gsm_bts *bts = conn_get_bts(conn);</span><br><span style="color: hsl(0, 100%, 40%);">-               if (bts && subscr) {</span><br><span style="color: hsl(120, 100%, 40%);">+          if (subscr) {</span><br><span>                        msc_target = paging_get_msc(bts, subscr);</span><br><span>                    bsc_subscr_put(subscr);</span><br><span>                      if (is_msc_usable(msc_target, is_emerg)) {</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bsc/+/19761">change 19761</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-bsc/+/19761"/><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-Change-Id: I0b804b8136cd78a777ca02667f696cdefa90c4a9 </div>
<div style="display:none"> Gerrit-Change-Number: 19761 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>