<p>Yeah, I read up no gdb's list command and this seems wrong. I've downloaded the kamailio source code via <code>apt-get source</code> and these are the lines around line 3060 in pv_core.c:</p>

<div class="highlight highlight-source-c"><pre><span class="pl-c1">3050</span>         hdr = msg->contact;                                                                                                     
<span class="pl-c1">3051</span>         <span class="pl-k">while</span>(hdr) {                                                                                                            
<span class="pl-c1">3052</span>             <span class="pl-smi">if</span> (hdr->type == HDR_CONTACT_T) {                                                                                   
<span class="pl-c1">3053</span>                 <span class="pl-smi">if</span> (!hdr->parsed && (<span class="pl-c1">parse_contact</span>(hdr) < <span class="pl-c1">0</span>)) {                                                                 
<span class="pl-c1">3054</span>                     <span class="pl-smi">LM_ERR</span>(<span class="pl-s"><span class="pl-pds">"</span>failed to parse Contact body<span class="pl-cce">\n</span><span class="pl-pds">"</span></span>);                                                                   
<span class="pl-c1">3055</span>                     <span class="pl-k">return</span> <span class="pl-c1">pv_get_null</span>(msg, param, res);                                                                        
<span class="pl-c1">3056</span>                 }                                                                                                               
<span class="pl-c1">3057</span>                 c = ((<span class="pl-c1">contact_body_t</span>*)hdr->parsed)->contacts;                                                                   
<span class="pl-c1">3058</span>                 <span class="pl-smi">while</span>(c) {                                                                                                      
<span class="pl-c1">3059</span>                     c = c->next;                                                                                                
<span class="pl-c1">3060</span>                     <span class="pl-smi">if</span>(c->expires && c->expires->body.<span class="pl-smi">len</span>) {                                                                    
<span class="pl-c1">3061</span>                         <span class="pl-smi">if</span> (<span class="pl-c1">str2int</span>(&c->expires->body, &eval) < <span class="pl-c1">0</span>) {                                                            
<span class="pl-c1">3062</span>                             <span class="pl-smi">LM_ERR</span>(<span class="pl-s"><span class="pl-pds">"</span>failed to parse expires<span class="pl-cce">\n</span><span class="pl-pds">"</span></span>);                                                                
<span class="pl-c1">3063</span>                             <span class="pl-k">return</span> <span class="pl-c1">pv_get_null</span>(msg, param, res);                                                                
<span class="pl-c1">3064</span>                         }                                                                                                       
<span class="pl-c1">3065</span>                         efound = <span class="pl-c1">1</span>;                                                                                             
<span class="pl-c1">3066</span>                         <span class="pl-smi">if</span>(eval>exp_max) exp_max = eval;                                                                        
<span class="pl-c1">3067</span>                         <span class="pl-smi">if</span>(eval<exp_min) exp_min = eval;                                                                        
<span class="pl-c1">3068</span>                     } <span class="pl-k">else</span> <span class="pl-k">if</span>(msg->expires && msg->expires->parsed) {                                                           
<span class="pl-c1">3069</span>                         eval = ehdr;                                                                                            
<span class="pl-c1">3070</span>                         efound = <span class="pl-c1">1</span>; </pre></div>

<p>Shouldn't <code>c = c->next</code> be at the end of the <code>while</code> loop?</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br>Reply to this email directly or <a href="https://github.com/kamailio/kamailio/issues/495#issuecomment-179799530">view it on GitHub</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/AF36ZSTuRl0Psx7ILi3hP4-wr6Z4yd3Zks5pgzoHgaJpZM4HSh2i.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
  <link itemprop="url" href="https://github.com/kamailio/kamailio/issues/495#issuecomment-179799530"></link>
  <meta itemprop="name" content="View Issue"></meta>
</div>
<meta itemprop="description" content="View this Issue on GitHub"></meta>
</div>