<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/2734/">https://reviewboard.asterisk.org/r/2734/</a>
     </td>
    </tr>
   </table>
   <br />



 <p>Ship it!</p>



 <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Ship It!</pre>
 <br />









<p>- Matt</p>


<br />
<p>On August 2nd, 2013, 12:19 p.m. UTC, wdoekes wrote:</p>








<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://reviewboard.asterisk.org/static/rb/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.</div>
<div>By wdoekes.</div>


<p style="color: grey;"><i>Updated Aug. 2, 2013, 12:19 p.m.</i></p>









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


<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;">Due to a different issue, my asterisk was out of memory.

It crashed first when it tried to AST_LIST_INSERT_HEAD(headp, newvariable, entries); a newvariable that was NULL.

#0  0x0000000000535b30 in pbx_builtin_setvar_helper (chan=0x7fb8fd85d368, name=0x7fb93c03ed60 &quot;__record_call&quot;, value=0x7fb940a90240 &quot;no&quot;) at pbx.c:10202
10202                        AST_LIST_INSERT_HEAD(headp, newvariable, entries);
(gdb) back
#0  0x0000000000535b30 in pbx_builtin_setvar_helper (chan=0x7fb8fd85d368, name=0x7fb93c03ed60 &quot;__record_call&quot;, value=0x7fb940a90240 &quot;no&quot;) at pbx.c:10202
#1  0x00007fb94b0a4e1f in sip_new (i=0x94d7ee8, state=0, title=0x7fb940a90ce0 &quot;152960003&quot;, linkedid=0x7fb93c058126 &quot;somehost-1374224633.26491&quot;) at chan_sip.c:7346
#2  0x00007fb94b10d9d6 in sip_request_call (type=0x7fb940a91250 &quot;SIP&quot;, cap=0x7fb833f3afc0, requestor=0x7fb8fd80b9c8, data=0x7fb940a92190, cause=0x7fb940a91b74) at chan_sip.c:27815
...

This patch checks all ast_var_assign() calls found in the 1.8 branch for NULL.

Note that I didn&#39;t sprinkle the code with &quot;out of memory&quot; log messages for three reasons: (a) you&#39;ll probably notice that you&#39;re out of mem anyway, (b) the ast_calloc already mentiones that we&#39;re out of mem, (c) the ast_log() call itself has the potential for crashing because of recursion (out of stack space) (*)


(*) E.g. here:
        /* Create a new logging message */
        if (!(logmsg = ast_calloc_with_stringfields(1, struct logmsg, res + 128)))
                return;
</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;">It compiles.</pre>
  </td>
 </tr>
</table>


<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/apps/app_playback.c <span style="color: grey">(396085)</span></li>

 <li>/branches/1.8/apps/app_stack.c <span style="color: grey">(396085)</span></li>

 <li>/branches/1.8/funcs/func_global.c <span style="color: grey">(396085)</span></li>

 <li>/branches/1.8/funcs/func_strings.c <span style="color: grey">(396085)</span></li>

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

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

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

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

 <li>/branches/1.8/utils/extconf.c <span style="color: grey">(396085)</span></li>

</ul>

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







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








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