<div dir="ltr">Hi Daniel,<div><br></div><div>Thanks for your reply.</div><div><br></div><div>On 8 January 2015 at 15:15, Daniel-Constantin Mierla <span dir="ltr"><<a href="mailto:miconda@gmail.com" target="_blank">miconda@gmail.com</a>></span> wrote:<br></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
Hi Charles,<br>
<br>
perhaps Olle can give more details about how he is running it. I was
on an irc-like chat with him reporting and testing, as I wanted to
see if there is anything that can be fixed before building v4.2.2.<br>
<br></div></blockquote><div><br></div><div>Will try to investigate further.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
On the other hand, not initializong peer_list and
dmq_init_callback_done to NULL and accessing them without check is
exposing at list the problem from destroy() function. Kamailio calls
destroy even if the module was not initialized. Not initializing
dmq_init_callback_done at declaration to NULL results in a random
value for it (C doesn't do implicit initialization), practically shm
freeing an invalid pointer in destroy function.<br>
<br></div></blockquote><div> </div><div>Agreed - should be done anyway, regardless of whether it is related or not to the reported issue.</div><div><br></div><div>Best,</div><div>Charles</div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000"><div><div><br>
<br>
<div>On 08/01/15 16:02, Charles Chance
wrote:<br>
</div>
</div></div><blockquote type="cite"><div><div>
<div dir="ltr">Hi Daniel,
<div><br>
</div>
<div>I was wondering, did you find some way in which this was
causing the issue?</div>
<div><br>
</div>
<div>Theoretically, if the module is loaded successfully then
peer_list cannot be null...<br>
</div>
<div><br>
</div>
<div>(dmq.c)</div>
<div><br>
</div>
<div>
<div>static int mod_init(void)<br>
</div>
<div>{</div>
</div>
<div>...</div>
<div>
<div> /* load peer list - the list containing the
module callbacks for dmq */</div>
<div> peer_list = init_peer_list();</div>
<div> if(peer_list==NULL) {</div>
<div> LM_ERR("cannot initialize peer list\n");</div>
<div> return -1;</div>
<div> }</div>
</div>
<div>...</div>
<div><br>
</div>
<div>Also, peer_list should always contain the local
notification peer, added during startup and prior to
run_init_callbacks() ever being called:</div>
<div><br>
</div>
<div>...</div>
<div>
<div> /**</div>
<div> * add the dmq notification peer.</div>
<div> * the dmq is a peer itself so that it can
receive node notifications</div>
<div> */</div>
<div> if(add_notification_peer()<0) {</div>
<div> LM_ERR("cannot add notification peer\n");</div>
<div> return -1;</div>
<div> }</div>
</div>
<div>...</div>
<div><br>
</div>
<div><br>
</div>
<div>Am I missing something obvious?<br>
</div>
<div><br>
</div>
<div>Best,</div>
<div>Charles<br>
</div>
<div><br>
</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On 8 January 2015 at 13:21,
Daniel-Constantin Mierla <span dir="ltr"><<a href="mailto:miconda@gmail.com" target="_blank">miconda@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Module:
kamailio<br>
Branch: master<br>
Commit: cc5f96f9c847d285085b0b9809ff0db76ea0a835<br>
URL: <a href="https://github.com/kamailio/kamailio/commit/cc5f96f9c847d285085b0b9809ff0db76ea0a835" target="_blank">https://github.com/kamailio/kamailio/commit/cc5f96f9c847d285085b0b9809ff0db76ea0a835</a><br>
<br>
Author: Daniel-Constantin Mierla <<a href="mailto:miconda@gmail.com" target="_blank">miconda@gmail.com</a>><br>
Committer: Daniel-Constantin Mierla <<a href="mailto:miconda@gmail.com" target="_blank">miconda@gmail.com</a>><br>
Date: 2015-01-08T14:20:58+01:00<br>
<br>
dmq: safety check for peer_list when calling the callbacks<br>
<br>
- can result in crashing if it is not set<br>
- reported by Olle E. Johansson<br>
<br>
---<br>
<br>
Modified: modules/dmq/notification_peer.c<br>
<br>
---<br>
<br>
Diff: <a href="https://github.com/kamailio/kamailio/commit/cc5f96f9c847d285085b0b9809ff0db76ea0a835.diff" target="_blank">https://github.com/kamailio/kamailio/commit/cc5f96f9c847d285085b0b9809ff0db76ea0a835.diff</a><br>
Patch: <a href="https://github.com/kamailio/kamailio/commit/cc5f96f9c847d285085b0b9809ff0db76ea0a835.patch" target="_blank">https://github.com/kamailio/kamailio/commit/cc5f96f9c847d285085b0b9809ff0db76ea0a835.patch</a><br>
<br>
---<br>
<br>
diff --git a/modules/dmq/notification_peer.c
b/modules/dmq/notification_peer.c<br>
index 1d804bd..b493717 100644<br>
--- a/modules/dmq/notification_peer.c<br>
+++ b/modules/dmq/notification_peer.c<br>
@@ -173,6 +173,10 @@ int extract_node_list(dmq_node_list_t*
update_list, struct sip_msg* msg)<br>
int run_init_callbacks() {<br>
dmq_peer_t* crt;<br>
<br>
+ if(peer_list==0) {<br>
+ LM_WARN("peer list is null\n");<br>
+ return 0;<br>
+ }<br>
crt = peer_list->peers;<br>
while(crt) {<br>
if (crt->init_callback) {<br>
<br>
<br>
_______________________________________________<br>
sr-dev mailing list<br>
<a href="mailto:sr-dev@lists.sip-router.org" target="_blank">sr-dev@lists.sip-router.org</a><br>
<a href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev</a><br>
</blockquote>
</div>
<br>
<br clear="all">
<div><br></div></div>
</div></div><font face="Helvetica, Arial, sans-serif"><font><span style="font-size:10pt"><a href="http://www.sipcentric.com/" title="blocked::http://www.sipcentric.com/" target="_blank">www.sipcentric.com</a><br>
<br>
Follow us on twitter <a 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><span>
<fieldset></fieldset>
<br>
<pre>_______________________________________________
sr-dev mailing list
<a href="mailto:sr-dev@lists.sip-router.org" target="_blank">sr-dev@lists.sip-router.org</a>
<a href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev</a>
</pre>
</span></blockquote><span><font color="#888888">
<br>
<pre cols="72">--
Daniel-Constantin Mierla
<a href="http://twitter.com/#!/miconda" target="_blank">http://twitter.com/#!/miconda</a> - <a href="http://www.linkedin.com/in/miconda" target="_blank">http://www.linkedin.com/in/miconda</a></pre>
</font></span></div>
<br>_______________________________________________<br>
sr-dev mailing list<br>
<a href="mailto:sr-dev@lists.sip-router.org" target="_blank">sr-dev@lists.sip-router.org</a><br>
<a href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev</a><br>
<br></blockquote></div><div><br></div>
</div></div>
<br>
<font face="Helvetica, Arial, sans-serif"><font size="2"><span style="font-size:10pt"><a href="http://www.sipcentric.com/" title="blocked::http://www.sipcentric.com/" target="_blank">www.sipcentric.com</a><br>
<br>
Follow us on twitter <a 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>