<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://reviewboard.asterisk.org/r/1275/">https://reviewboard.asterisk.org/r/1275/</a>
     </td>
    </tr>
   </table>
   <br />





 <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Quickly tested here and it works correctly and does not cause any problems (the function is nominally hit with chan-&gt;pbx==NULL when a callee transfers the caller with SIP REFER).

Looks much safer a fix than mine, indeed! Thanks.</pre>
 <br />







<p>- kkm</p>


<br />
<p>On June 17th, 2011, 10:46 a.m., David Vossel wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://reviewboard.asterisk.orgrb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for Asterisk Developers and kkm.</div>
<div>By David Vossel.</div>


<p style="color: grey;"><i>Updated 2011-06-17 10:46:36</i></p>




<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This is in response to review 1274.  kkm identified an issue with async_goto, and as I was reviewing it I realized the problem is much deeper than I can easily comment and give direction on in the review.  It wasn&#39;t much code so I just wrote what I was thinking instead.

We can not hold the &quot;chan&quot; lock while doing the masquerade, the explicit goto on the tmp chan, or the channel alloc.  Nearly the entire function is wrong.  Instead we need to get the channel lock, store off information about the channel that we need, and then let the channel lock go for the remainder of the function.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I have not tested this.</pre>
  </td>
 </tr>
</table>



<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>


 <a href="https://issues.asterisk.org/jira/browse/ASTERISK-18031">ASTERISK-18031</a>


</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>/branches/1.8/include/asterisk/pbx.h <span style="color: grey">(324047)</span></li>

 <li>/branches/1.8/main/pbx.c <span style="color: grey">(324047)</span></li>

</ul>

<p><a href="https://reviewboard.asterisk.org/r/1275/diff/" style="margin-left: 3em;">View Diff</a></p>




  </td>
 </tr>
</table>








  </div>
 </body>
</html>