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





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On January 20th, 2012, 2:17 p.m., <b>Mark Michelson</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I&#39;m in agreement with Richard with regards to trying to size the buffer for the pointer. It&#39;s a bad idea to try to assume how a system will stringify a pointer when using %p. There are a couple of ways around this:

1. Size the buffer to something larger than you think is necessary, like 64 or something. Even still, I&#39;d feel more comfortable using snprintf() for printing the value instead of sprintf(). And even still, this may not guarantee uniqueness if it by some bizarre reason turns out that a system prints its pointers some weird way, like in binary.
2. Another way to guarantee uniqueness and know the size of the data you will store is to have an unsigned integer at file scope that increases by one each time you need a unique id. You can use ast_atomic_fetchadd_int to guarantee that no two threads end up with the same value. There are examples of this used in several places in Asterisk. I know off the top of my head that ccss.c uses this for identifying each of its core instances it allocates.</pre>
 </blockquote>




 <p>On January 20th, 2012, 3:24 p.m., <b>jrose</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Kevin suggested specifically to use the pointer of the data store as the unique value, so I think I&#39;ll stick with that. I&#39;ll go ahead and change the multiplier for the buffer to 4 so that we have double the needed characters as a base, and also switch to snprintf, though I think I&#39;ll need to pass the length of the string to do that.</pre>
 </blockquote>








</blockquote>

<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I think I&#39;m going to go with a predefined size for this afterall on account of picking a variable size is just proving nutty.</pre>
<br />








<p>- jrose</p>


<br />
<p>On January 20th, 2012, 1:07 p.m., jrose wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://reviewboard.asterisk.org/media/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, Mark Michelson and telecos.</div>
<div>By jrose.</div>


<p style="color: grey;"><i>Updated Jan. 20, 2012, 1:07 p.m.</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;">Fixes style problems from r6 on https://reviewboard.asterisk.org/r/1643/
Changes creation of character buffer to length of a pointer in characters + 3 (2 for 0x, 1 for terminating space)

That might not be adequate.  Richard was saying something about pointers on other operating systems having other dividing symbols in them.  Well, at least &#39;:&#39;s.

In my experiences though, a pointer is usually just something like 0x0123FEDC when printed with %p.</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-19096">ASTERISK-19096</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>/trunk/CHANGES <span style="color: grey">(351538)</span></li>

 <li>/trunk/apps/app_mixmonitor.c <span style="color: grey">(351538)</span></li>

</ul>

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




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








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