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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">osmo-bts-trx/trx_if: fix memleak in trx_ctrl_cmd_cb()<br><br>If we do not enqueue a TRXC message, we should release memory.<br><br>Change-Id: Ie2cdf547befbc0fafdb82b10b45ad85a9b188b88<br>---<br>M src/osmo-bts-trx/trx_if.c<br>1 file changed, 12 insertions(+), 11 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c</span><br><span>index f717a0c..488aff6 100644</span><br><span>--- a/src/osmo-bts-trx/trx_if.c</span><br><span>+++ b/src/osmo-bts-trx/trx_if.c</span><br><span>@@ -211,9 +211,6 @@</span><br><span>         struct trx_ctrl_msg *tcm;</span><br><span>    struct trx_ctrl_msg *prev = NULL;</span><br><span>    va_list ap;</span><br><span style="color: hsl(0, 100%, 40%);">-     int pending;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    pending = !llist_empty(&l1h->trx_ctrl_list);</span><br><span> </span><br><span>      /* create message */</span><br><span>         tcm = talloc_zero(tall_bts_ctx, struct trx_ctrl_msg);</span><br><span>@@ -236,18 +233,22 @@</span><br><span>        tcm->cb = cb;</span><br><span> </span><br><span>         /* Avoid adding consecutive duplicate messages, eg: two consecutive POWEROFF */</span><br><span style="color: hsl(0, 100%, 40%);">- if(pending)</span><br><span style="color: hsl(120, 100%, 40%);">+   if (!llist_empty(&l1h->trx_ctrl_list))</span><br><span>                prev = llist_entry(l1h->trx_ctrl_list.prev, struct trx_ctrl_msg, list);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-      if (!pending ||</span><br><span style="color: hsl(0, 100%, 40%);">-     !(strcmp(tcm->cmd, prev->cmd) == 0 && strcmp(tcm->params, prev->params) == 0)) {</span><br><span style="color: hsl(0, 100%, 40%);">-                LOGPPHI(l1h->phy_inst, DTRX, LOGL_INFO, "Enqueuing TRX control command 'CMD %s%s%s'\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                    tcm->cmd, tcm->params_len ? " ":"", tcm->params);</span><br><span style="color: hsl(0, 100%, 40%);">-          llist_add_tail(&tcm->list, &l1h->trx_ctrl_list);</span><br><span style="color: hsl(120, 100%, 40%);">+        if (prev != NULL && !strcmp(tcm->cmd, prev->cmd)</span><br><span style="color: hsl(120, 100%, 40%);">+                         && !strcmp(tcm->params, prev->params)) {</span><br><span style="color: hsl(120, 100%, 40%);">+               LOGPPHI(l1h->phy_inst, DTRX, LOGL_DEBUG,</span><br><span style="color: hsl(120, 100%, 40%);">+                   "Not sending duplicate command '%s'\n", tcm->cmd);</span><br><span style="color: hsl(120, 100%, 40%);">+               talloc_free(tcm);</span><br><span style="color: hsl(120, 100%, 40%);">+             return 0;</span><br><span>    }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPPHI(l1h->phy_inst, DTRX, LOGL_INFO, "Enqueuing TRX control command 'CMD %s%s%s'\n",</span><br><span style="color: hsl(120, 100%, 40%);">+          tcm->cmd, tcm->params_len ? " " : "", tcm->params);</span><br><span style="color: hsl(120, 100%, 40%);">+      llist_add_tail(&tcm->list, &l1h->trx_ctrl_list);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>     /* send message, if we didn't already have pending messages */</span><br><span style="color: hsl(0, 100%, 40%);">-      if (!pending)</span><br><span style="color: hsl(120, 100%, 40%);">+ if (prev == NULL)</span><br><span>            trx_ctrl_send(l1h);</span><br><span> </span><br><span>      return 0;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bts/+/18704">change 18704</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-bts/+/18704"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bts </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Ie2cdf547befbc0fafdb82b10b45ad85a9b188b88 </div>
<div style="display:none"> Gerrit-Change-Number: 18704 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: ipse <Alexander.Chemeris@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>