<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html;
      charset=ISO-8859-1">
    <title>[FIX] [Severity High] Dialog module</title>
  </head>
  <body bgcolor="#ffffff" text="#000000">
    <pre>This message was generated by the Security Alerts service ( Free Trial 14th of August - 14th of September )
<a class="moz-txt-link-freetext" href="http://www.opensips.org/Resources/AlertsMain">http://www.opensips.org/Resources/AlertsMain</a>
<b>
SVN commit</b>:
<a class="moz-txt-link-freetext" href="http://opensips.svn.sourceforge.net/viewvc/opensips?view=revision&amp;revision=9155">http://opensips.svn.sourceforge.net/viewvc/opensips?view=revision&amp;revision=9155</a>

<b>Severity</b>: High

<b>Version</b> : 1.8, trunk

<b>Affected modules</b> : Dialog

<b>Effect</b> : Deadlock - 100% CPU Usage

<b>Affected scenarios</b>: When the Dialog module is configured to do in-dialog pinging,
there is a risk of a deadlock during dialog ending.

<b>Description:</b> This was due to different ordering of acquiring two locks ( the per 
dialog lock and the per pinging list lock ).
When sending the ping out, the dialog module would first acquire the pinging list lock,
and then the per dialog lock.
When the dialog was terminated due to a BYE, the dialog module would first acquire the
per dialog lock and then the pinging list lock, thus leading to the deadlock if pinging
would have been attempted at the same time.

<b>Risks</b> : In high traffic OpenSIPS environments, the possibility of deadlocks would
dramatically increase. When the deadlock would happen, OpenSIPS would jump to 100% CPU usage
and no more traffic could be processed. Thus, updating is critical if you are using
in-dialog pinging.

<b>Update</b> :
- if you have an SVN checkout, 1.8 and trunk were fixed; so 
update to a revision later than 9155 (trunk) or 9156 (1.8 branch)
- if you have OpenSIPS from sources, download and apply the patch from
<a class="moz-txt-link-freetext" href="http://opensips.svn.sourceforge.net/viewvc/opensips/branches/1.8/modules/dialog/dlg_timer.c?view=patch&amp;r1=9156&amp;r2=9155&amp;pathrev=9156">http://opensips.svn.sourceforge.net/viewvc/opensips/branches/1.8/modules/dialog/dlg_timer.c?view=patch&amp;r1=9156&amp;r2=9155&amp;pathrev=9156</a>
or see the attached patch;
- if using tarballs, they were already regenerated (and include the fix)
- If using the official Debian package (apt.opensips.org), they are also 
re-generated including the fix.

</pre>
    <pre class="moz-signature" cols="72">-- 
Vlad Paiu
OpenSIPS Developer
<a class="moz-txt-link-freetext" href="http://www.opensips-solutions.com">http://www.opensips-solutions.com</a> </pre>
  </body>
</html>