Summary:ASTERISK-17417: [patch] fix for crash in strcompare_l in sip/reqresp_parser.c - possible null c_locale
Reporter:cmaj (cmaj)Labels:
Date Opened:2011-02-16 11:04:57.000-0600Date Closed:2011-03-23 16:47:00
Versions:Frequency of
Environment:Attachments:( 0) patch-reqresp_parser_sip_uri_domain_cmp_c_locale-crash-1.8.3-rc2.diff.tx
Description:Patch attached should fix this. Second or third time this has been seen now on 1.8.3-rc2, and it appears to be quite random. Lots of TCP SIP signalling is in use but no TLS.

(gdb) bt
#0  0x00007f17ce1d7e37 in strcasecmp_l () from /lib/libc.so.6
#1  0x00007f179fbf31d5 in sip_uri_domain_cmp (host1=0x41520bd4 "sip02:5060", host2=0x41520ba4 "sip02:5060") at sip/reqresp_parser.c:2012
#2  0x00007f179fbf39d6 in sip_uri_cmp (input1=<value optimized out>, input2=<value optimized out>) at sip/reqresp_parser.c:2113
#3  0x00007f179fbad7b9 in find_call (req=0x41523020, addr=0x17ed5b8, intended_method=2) at chan_sip.c:7362
#4  0x00007f179fbee55f in handle_request_do (req=0x41523020, addr=0x17ed5b8) at chan_sip.c:24086
ASTERISK-1  0x00007f179fbf03e0 in _sip_tcp_helper_thread (pvt=<value optimized out>, tcptls_session=0x17ed598) at chan_sip.c:2555
ASTERISK-2  0x000000000052b8b1 in handle_tcptls_connection (data=<value optimized out>) at tcptls.c:229
ASTERISK-3  0x000000000053706c in dummy_start (data=<value optimized out>) at utils.c:971
ASTERISK-4  0x00007f17cd9e5fc7 in start_thread () from /lib/libpthread.so.0
ASTERISK-5  0x00007f17ce22a64d in clone () from /lib/libc.so.6
ASTERISK-6 0x0000000000000000 in ?? ()


sip02*CLI> sip show settings

Global Settings:
 UDP Bindaddress:
 TCP SIP Bindaddress:
 TLS SIP Bindaddress:    Disabled

 Videosupport:           Yes
 Textsupport:            No
 Ignore SDP sess. ver.:  No
 AutoCreate Peer:        No
 Match Auth Username:    No
 Allow unknown access:   Yes
 Allow subscriptions:    Yes
 Allow overlap dialing:  Yes
 Allow promsic. redir:   No
 Enable call counters:   Yes
 SIP domain support:     No
 Realm. auth:            No
 Our auth realm          voip.local
 Use domains as realms:  No
 Call to non-local dom.: Yes
 URI user is phone no:   No
 Always auth rejects:    Yes
 Direct RTP setup:       No
 User Agent:             Asterisk PBX 1.8.3-rc2
 SDP Session Name:       Asterisk PBX 1.8.3-rc2
 SDP Owner Name:         root
 Reg. context:           (not set)
 Regexten on Qualify:    No
 Caller ID:              asterisk
 From: Domain:          
 Record SIP history:     Off
 Call Events:            Off
 Auth. Failure Events:   Off
 T.38 support:           Yes
 T.38 EC mode:           FEC
 T.38 MaxDtgrm:          -1
 SIP realtime:           Enabled
 Qualify Freq :          60000 ms
 Q.850 Reason header:    No
Comments:By: Digium Subversion (svnbot) 2011-03-23 16:45:47

Repository: asterisk
Revision: 311612

U   branches/1.8/channels/sip/reqresp_parser.c

r311612 | bbryant | 2011-03-23 16:45:47 -0500 (Wed, 23 Mar 2011) | 9 lines

Fix a possible crash in sip/reqresp_parser.c that is caused by a possible null

(closes issue ASTERISK-17417)
Reported by: cmaj
     uploaded by cmaj (license 830)



By: Digium Subversion (svnbot) 2011-03-23 16:47:00

Repository: asterisk
Revision: 311613

_U  trunk/
U   trunk/channels/sip/reqresp_parser.c

r311613 | bbryant | 2011-03-23 16:46:59 -0500 (Wed, 23 Mar 2011) | 16 lines

Merged revisions 311612 via svnmerge from

 r311612 | bbryant | 2011-03-23 17:45:46 -0400 (Wed, 23 Mar 2011) | 9 lines
 Fix a possible crash in sip/reqresp_parser.c that is caused by a possible null
 (closes issue ASTERISK-17417)
 Reported by: cmaj
       uploaded by cmaj (license 830)