[asterisk-bugs] [Asterisk 0019192]: [patch] [regression] segfault in _sip_tcp_helper_thread() caused by bad merge in r314628
Asterisk Bug Tracker
noreply at bugs.digium.com
Mon May 16 10:53:30 CDT 2011
A NOTE has been added to this issue.
======================================================================
https://issues.asterisk.org/view.php?id=19192
======================================================================
Reported By: stknob
Assigned To: mnicholson
======================================================================
Project: Asterisk
Issue ID: 19192
Category: Channels/chan_sip/General
Reproducibility: always
Severity: block
Priority: normal
Status: closed
Target Version: 1.8.5
Asterisk Version: 1.8.3.3
JIRA: SWP-3390
Regression: Yes
Reviewboard Link:
SVN Branch (only for SVN checkouts, not tarball releases): N/A
SVN Revision (number only!):
Request Review:
Resolution: fixed
Fixed in Version:
======================================================================
Date Submitted: 2011-04-27 11:43 CDT
Last Modified: 2011-05-16 10:53 CDT
======================================================================
Summary: [patch] [regression] segfault in
_sip_tcp_helper_thread() caused by bad merge in r314628
Description:
This happens if ast_tcptls_session_start() in _sip_tcp_helper_thread() on
line 2506 in chan_sip.c fails (returns NULL).
To reproduce,
- create a tcp sip peer that can not be reached (e.g. blocked by
firewall)
- use sip qualify peer X (or set qualify=yes in sip.conf)
chan_sip will try to create the connection by calling
ast_tcptls_session_start().
the connection fails and ast_tcptls_session_start() returns NULL:
if ((!(ca = tcptls_session->parent)) ||
(!(me = ao2_t_find(threadt, &tmp, OBJ_POINTER, "ao2_find, getting
sip_threadinfo in tcp helper thread"))) ||
(!(tcptls_session = ast_tcptls_client_start(tcptls_session)))) {
goto cleanup;
}
setting tcptls_session to NULL and jumping to cleanup:
cleanup:
if (!tcptls_session->client && !authenticated) {
ast_atomic_fetchadd_int(&unauth_sessions, -1);
}
*boom*
asterisk[8204]: segfault at 18 ip 00007f497d4499f0 sp 00007f4966ef5450
error 4 in chan_sip.so[7f497d3c7000+a6000]
======================================================================
Relationships ID Summary
----------------------------------------------------------------------
has duplicate 0019290 Asterisk Crashing
child of 0019182 [patch] [regression] Asterisk drops sip...
======================================================================
----------------------------------------------------------------------
(0134976) svnbot (reporter) - 2011-05-16 10:53
https://issues.asterisk.org/view.php?id=19192#c134976
----------------------------------------------------------------------
Repository: asterisk
Revision: 319142
U branches/1.8/channels/chan_sip.c
------------------------------------------------------------------------
r319142 | mnicholson | 2011-05-16 10:53:27 -0500 (Mon, 16 May 2011) | 8
lines
Make sure tcptls_session exists before dereferencing it.
(closes issue https://issues.asterisk.org/view.php?id=19192)
Reported by: stknob
Patches:
10-tcptls-unreachable-peer-segfault.patch uploaded by Chainsaw
(license 723)
Tested by: vois, Chainsaw
------------------------------------------------------------------------
http://svn.digium.com/view/asterisk?view=rev&revision=319142
Issue History
Date Modified Username Field Change
======================================================================
2011-05-16 10:53 svnbot Checkin
2011-05-16 10:53 svnbot Note Added: 0134976
======================================================================
More information about the asterisk-bugs
mailing list