<p>laforge has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bts/+/14876">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">scheduler_trx: Deal with osmo_amr_rtp_enc() returning negative<br><br>We cannot pass the possibly negative return value as length value to<br>_sched_compose_tch_ind() which would use it as the (unsigned) length<br>value of a memcpy.<br><br>Change-Id: I70ce98c5697b9ce6fac7ab57a5d70f3201db29d9<br>Closes: CID#178643<br>---<br>M src/osmo-bts-trx/scheduler_trx.c<br>1 file changed, 14 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/76/14876/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c</span><br><span>index ade3cff..22399c1 100644</span><br><span>--- a/src/osmo-bts-trx/scheduler_trx.c</span><br><span>+++ b/src/osmo-bts-trx/scheduler_trx.c</span><br><span>@@ -382,6 +382,10 @@</span><br><span>                       len = osmo_amr_rtp_enc(tch_data,</span><br><span>                             chan_state->codec[chan_state->dl_cmr],</span><br><span>                                 chan_state->codec[chan_state->dl_ft], AMR_BAD);</span><br><span style="color: hsl(120, 100%, 40%);">+                 if (len < 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+                             LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Cannot encode AMR\n");</span><br><span style="color: hsl(120, 100%, 40%);">+                         len = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+                      }</span><br><span>                    if (len < 2)</span><br><span>                              break;</span><br><span>                       memset(tch_data + 2, 0, len - 2);</span><br><span>@@ -1212,6 +1216,11 @@</span><br><span>                                   chan_state->codec[chan_state->dl_cmr],</span><br><span>                                         chan_state->codec[chan_state->dl_ft],</span><br><span>                                  AMR_BAD);</span><br><span style="color: hsl(120, 100%, 40%);">+                             if (rc < 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           "Cannot encode AMR\n");</span><br><span style="color: hsl(120, 100%, 40%);">+                                     rc = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+                               }</span><br><span>                            if (rc < 2)</span><br><span>                                       break;</span><br><span>                               memset(tch_data + 2, 0, rc - 2);</span><br><span>@@ -1393,6 +1402,11 @@</span><br><span>                                    chan_state->codec[chan_state->dl_cmr],</span><br><span>                                         chan_state->codec[chan_state->dl_ft],</span><br><span>                                  AMR_BAD);</span><br><span style="color: hsl(120, 100%, 40%);">+                             if (rc < 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           "Cannot encode AMR\n");</span><br><span style="color: hsl(120, 100%, 40%);">+                                     rc = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+                               }</span><br><span>                            if (rc < 2)</span><br><span>                                       break;</span><br><span>                               memset(tch_data + 2, 0, rc - 2);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bts/+/14876">change 14876</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/+/14876"/><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: I70ce98c5697b9ce6fac7ab57a5d70f3201db29d9 </div>
<div style="display:none"> Gerrit-Change-Number: 14876 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>