]> git.ipfire.org Git - thirdparty/asterisk.git/commit
Remove extra ast_iostream_close() calls. 97/4997/1
authorMark Michelson <mmichelson@digium.com>
Fri, 17 Feb 2017 20:58:28 +0000 (14:58 -0600)
committerMark Michelson <mmichelson@digium.com>
Fri, 17 Feb 2017 21:12:30 +0000 (15:12 -0600)
commitdbc359801483e0b793661d5c39166a44538d9785
treed43cb4a21f5ecb3c75d283804f344be841f45535
parent11da7b510643d116ea1f209330cff56b5ee6585a
Remove extra ast_iostream_close() calls.

When AMI encounters an error at the beginning of a session, it would
explicitly call ast_iostream_close() on its tcptls session's iostream.
It then would jump to a label where it would shut down the tcptls
session instance. The tcptls session instance would again attempt to
close the iostream.

Under normal circumstances, this might go by unnoticed. However, when
MALLOC_DEBUG is enabled, all fields on the iostream get set to
0xdeaddead when the iostream is freed. Thus a second call to
ast_iostream_close() after the iostream has been freed would reslt in an
attempt to call SSL_shutdown on 0xdeaddead, which would crash and burn
horribly.

The fix here is to not directly close the iostream from the dangerous
scenarios. The specific scenarios are:
* Exceeding the configured authlimit
* Failing to build a mansession on a new connection

Change-Id: I908f98d516afd5a263bd36b072221008a4731acd
main/manager.c