[asterisk-commits] elguero: branch 10 r371250 - /branches/10/channels/chan_sip.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Tue Aug 14 20:36:02 CDT 2012
Author: elguero
Date: Tue Aug 14 20:35:57 2012
New Revision: 371250
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=371250
Log:
Fix Segfault When Registering SIP Over WebSockets
The helper function, get_address_family_filter, in chan_sip for dns resolution
by address family was not recognizing the websockets transport and resulting in
a null pointer being sent to functions in netsock2, in an attempt to determine
if we are bound to ANY address ([::]) or not.
This patch fixes this issue by handling the transport types SIP_TRANSPORT_WS and
SIP_TRANSPORT_WSS which results in a sock address being set properly for use in
determining the address family.
(closes issue ASTERISK-20221)
Reported by: Sven Beisiegel
Tested by: Sven Beisiegel, James Mortensen
Patches:
asterisk-20221-ws-family-filter.diff uploaded by Michael L. Young (license 5026)
Modified:
branches/10/channels/chan_sip.c
Modified: branches/10/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/branches/10/channels/chan_sip.c?view=diff&rev=371250&r1=371249&r2=371250
==============================================================================
--- branches/10/channels/chan_sip.c (original)
+++ branches/10/channels/chan_sip.c Tue Aug 14 20:35:57 2012
@@ -26522,11 +26522,9 @@
if ((transport == SIP_TRANSPORT_UDP) || !transport) {
addr = &bindaddr;
- }
- else if (transport == SIP_TRANSPORT_TCP) {
+ } else if (transport == SIP_TRANSPORT_TCP || transport == SIP_TRANSPORT_WS) {
addr = &sip_tcp_desc.local_address;
- }
- else if (transport == SIP_TRANSPORT_TLS) {
+ } else if (transport == SIP_TRANSPORT_TLS || transport == SIP_TRANSPORT_WSS) {
addr = &sip_tls_desc.local_address;
}
More information about the asterisk-commits
mailing list