summaryrefslogtreecommitdiff
path: root/channels/chan_sip.c
diff options
context:
space:
mode:
authorMichael L. Young <elgueromexicano@gmail.com>2012-08-15 20:43:37 +0000
committerMichael L. Young <elgueromexicano@gmail.com>2012-08-15 20:43:37 +0000
commit7aac43b4b18a5154f53561fbef959246397d1364 (patch)
treec0f76275544c02edaaa86fc52a3234e1d2c6a29d /channels/chan_sip.c
parent837e00a5cc90699a62e93f15dce463e27ece250e (diff)
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) ........ Merged revisions 371295 from http://svn.asterisk.org/svn/asterisk/branches/11 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@371296 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_sip.c')
-rw-r--r--channels/chan_sip.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 3668c253b..b0fd1edf3 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -27596,11 +27596,9 @@ int get_address_family_filter(unsigned int transport)
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;
}