This message was generated by the Security Alerts service ( Free Trial 14th of 
August - 14th of September )
http://www.opensips.org/Resources/AlertsMain
*
SVN commit*:
http://opensips.svn.sourceforge.net/opensips/?rev=9169

*Severity*: Low

*Version*  : 1.8 and trunk

*Affected modules*  : dialog module

*Effect*  : more dialog flags (P,p,B) than actually set

*Affected scenarios*: If using from script multiple time the create_dialog() 
function (in order to change some dialog
flags), the previously set flags (P,p,B) will still be considered (instead of 
being reset).

*Description:*  instead of combining the existing dialog flags (with the new 
ones), we simply overriding existing parameters
with the new ones (when calling create_dialog() several times for the same 
INVITE request).
Old behavior:
        create_dialog("Pp");
        create_dialog("B");
        =>  resulting flags = "PpB"
New behavior:
        create_dialog("Pp");
        create_dialog("B");
        =>  resulting flags = "B"

*Risks*  : have a unexpected dialog behavior (undesired pinging, or undesired 
BYE on timeout)

*Update*  :
- if you have an SVN checkout, 1.8 and trunk were fixed; so
update to a revision later than 9169 (trunk) or 9170 (1.8 branch).
- if you have OpenSIPS from sources see the attached patch;
- if using tarballs, they were already regenerated (and include the fix). 
Available only for 1.8.
- If using the official Debian package (apt.opensips.org), they are also
re-generated including the fix (available for 1.8 and trunk).



--
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com

Index: modules/dialog/dialog.c
===================================================================
--- modules/dialog/dialog.c	(revision 9168)
+++ modules/dialog/dialog.c	(revision 9169)
@@ -872,6 +872,8 @@
 	/* is the dialog already created? */
 	if (current_dlg_pointer!=NULL)
 	{
+		/*Clear current flags before setting new ones*/
+		current_dlg_pointer->flags &= ~(DLG_FLAG_PING_CALLER | DLG_FLAG_PING_CALLEE | DLG_FLAG_BYEONTIMEOUT);
 		current_dlg_pointer->flags |= flags;
 		return 1;
 	}
_______________________________________________
Alerts mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/alerts
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to