<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hello,<br>
    <br>
    looks like you are right, feel free to commit the fix.<br>
    <br>
    Cheers,<br>
    Daniel<br>
    <br>
    <div class="moz-cite-prefix">On 08/01/15 22:12, Charles Chance
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAOvxgzD27z2CorVX=6fJ7Wb=vA4oYraL4MfTfpjHLL994xyL5Q@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>Hello,</div>
        <div><br>
        </div>
        <div>I am investigating a crash which is happening since:</div>
        <div><br>
        </div>
        <div>commit 0c11f4f9c235bf791ac39446c293483462a99354</div>
        <div>Author: Daniel-Constantin Mierla <<a
            moz-do-not-send="true" href="mailto:miconda@gmail.com">miconda@gmail.com</a>></div>
        <div>Date:   Mon Dec 29 22:26:46 2014 +0100</div>
        <div><br>
        </div>
        <div>    pua_dialoginfo: load dialogs for dialoginfo event upon
          restart</div>
        <div><br>
        </div>
        <div>    - based on a patch by Kristian Høgh, FS#360</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>The problem appears to be that in this function of
          pua_dialoginfo.c...</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>static void</div>
        <div>__dialog_created(struct dlg_cell *dlg, int type, struct
          dlg_cb_params *_params)</div>
        <div>{</div>
        <div>        struct sip_msg *request = _params->req;</div>
        <div>        struct dlginfo_cell *dlginfo;</div>
        <div><br>
        </div>
        <div>        if (request->REQ_METHOD != METHOD_INVITE)</div>
        <div>                return;</div>
        <div><br>
        </div>
        <div>        if(send_publish_flag > -1 &&
          !(request->flags & (1<<send_publish_flag)))</div>
        <div>                return;</div>
        <div><br>
        </div>
        <div>        LM_DBG("new INVITE dialog created: from=%.*s\n",
          dlg->from_uri.len, dlg->from_uri.s);</div>
        <div><br>
        </div>
        <div>        dlginfo=get_dialog_data(dlg, type);</div>
        <div>        if(dlginfo==NULL)</div>
        <div>                return;</div>
        <div><br>
        </div>
        <div>        dialog_publish_multi("Trying",
          dlginfo->pubruris_caller,</div>
        <div>                                &(dlg->from_uri),</div>
        <div>                               
          (include_req_uri)?&(dlg->req_uri):&(dlg->to_uri),</div>
        <div>                                &(dlg->callid), 1,
          dlginfo->lifetime,</div>
        <div>                                0, 0, 0, 0,
          (send_publish_flag==-1)?1:0);</div>
        <div>        free_dlginfo_cell(dlginfo);</div>
        <div><br>
        </div>
        <div>}</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>...dlginfo is freed, but is still being referenced in the
          callback registered here...</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>struct dlginfo_cell* get_dialog_data(struct dlg_cell *dlg,
          int type)</div>
        <div>{</div>
        <div>...</div>
        <div>        /* register dialog callbacks which triggers sending
          PUBLISH */</div>
        <div>        if (dlg_api.register_dlgcb(dlg,</div>
        <div>                                DLGCB_FAILED|
          DLGCB_CONFIRMED_NA | DLGCB_TERMINATED</div>
        <div>                                | DLGCB_EXPIRED |
          DLGCB_REQ_WITHIN | DLGCB_EARLY,</div>
        <div>                                __dialog_sendpublish,
          dlginfo, free_dlginfo_cell) != 0) {</div>
        <div>                LM_ERR("cannot register callback for
          interesting dialog types\n");</div>
        <div>                free_dlginfo_cell(dlginfo);</div>
        <div>                return NULL;</div>
        <div>        }</div>
        <div>...</div>
        <div>        return(dlginfo);</div>
        <div>}</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>Can the freeing of this structure simply be left up to the
          dialog module when the dialog is eventually destroyed?</div>
        <div><br>
        </div>
        <div>All the best,</div>
        <div>Charles</div>
        <div><br>
        </div>
      </div>
      <br>
      <font face="Helvetica, Arial, sans-serif"><font size="2"><span
            style="font-size:10pt"><a moz-do-not-send="true"
              href="http://www.sipcentric.com/"
              title="blocked::http://www.sipcentric.com/"
              target="_blank">www.sipcentric.com</a><br>
            <br>
            Follow us on twitter <a moz-do-not-send="true"
              href="http://twitter.com/sipcentric"
              title="blocked::http://twitter.com/sipcentric"
              target="_blank">@sipcentric</a><br>
            <br>
            <font color="gray">Sipcentric Ltd. Company registered in
              England & Wales no. 7365592.</font> <font color="gray">Registered

              office: Faraday Wharf, Innovation Birmingham Campus, Holt
              Street, Birmingham Science Park, Birmingham B7 4BB.</font></span></font></font>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
sr-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:sr-dev@lists.sip-router.org">sr-dev@lists.sip-router.org</a>
<a class="moz-txt-link-freetext" href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev</a>
</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Daniel-Constantin Mierla
<a class="moz-txt-link-freetext" href="http://twitter.com/#!/miconda">http://twitter.com/#!/miconda</a> - <a class="moz-txt-link-freetext" href="http://www.linkedin.com/in/miconda">http://www.linkedin.com/in/miconda</a></pre>
  </body>
</html>