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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">fail on invalid RTP address from MGW<br><br>When the CRCX OK returns an invalid RTP address, abort the call; fixes<br>MSC_Tests.TC_invalid_mgcp_crash.<br><br>The original crash happened when adding this error handling without this commit<br>I08c03946605aa12e0a5ce8b3c773704ef5327a7a ("fsm: use deferred deallocation" for<br>osmo-mgw I7df2e9202b04e7ca7366bb0a8ec53cf3bb14faf3 "fix use-after-free: require<br>new fsm deferred dealloc, check for term"). With this error handling added,<br>even though avoiding a crash, the test does not pass yet, because instead of<br>rejecting the call, it currently composes an Assignment Command without a<br>Transport Layer Address. Fix that.<br><br>Change-Id: I00c3b5ff74c05bcc2b7c39375c33419916a57193<br>---<br>M src/libmsc/msc_a.c<br>1 file changed, 6 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/libmsc/msc_a.c b/src/libmsc/msc_a.c</span><br><span>index 0b07fbc..a4048f4 100644</span><br><span>--- a/src/libmsc/msc_a.c</span><br><span>+++ b/src/libmsc/msc_a.c</span><br><span>@@ -627,6 +627,12 @@</span><br><span>                         LOG_MSC_A(msc_a, LOGL_ERROR, "Invalid data for %s\n", osmo_fsm_event_name(fi->fsm, event));</span><br><span>                     return;</span><br><span>              }</span><br><span style="color: hsl(120, 100%, 40%);">+             if (!osmo_sockaddr_str_is_nonzero(&rtps->local)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                     LOG_MSC_A(msc_a, LOGL_ERROR, "Invalid RTP address received from MGW: " OSMO_SOCKADDR_STR_FMT "\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                                 OSMO_SOCKADDR_STR_FMT_ARGS(&rtps->local));</span><br><span style="color: hsl(120, 100%, 40%);">+                    call_leg_release(msc_a->cc.call_leg);</span><br><span style="color: hsl(120, 100%, 40%);">+                      return;</span><br><span style="color: hsl(120, 100%, 40%);">+               }</span><br><span>            LOG_MSC_A(msc_a, LOGL_DEBUG,</span><br><span>                           "MGW endpoint's RTP address available for the CI %s: " OSMO_SOCKADDR_STR_FMT " (osmux=%s:%d)\n",</span><br><span>                     rtp_direction_name(rtps->dir), OSMO_SOCKADDR_STR_FMT_ARGS(&rtps->local),</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-msc/+/16302">change 16302</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-msc/+/16302"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-msc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I00c3b5ff74c05bcc2b7c39375c33419916a57193 </div>
<div style="display:none"> Gerrit-Change-Number: 16302 </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-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>