]> git.ipfire.org Git - thirdparty/asterisk.git/commit
Resolve memory leaks in TLS initialization and TLS client connections
authorMatthew Jordan <mjordan@digium.com>
Fri, 14 Sep 2012 19:50:40 +0000 (19:50 +0000)
committerMatthew Jordan <mjordan@digium.com>
Fri, 14 Sep 2012 19:50:40 +0000 (19:50 +0000)
commit9e396da730817953002ddf723e6579ad6d815d47
treef11b4fd65096bbb4eaed027dde4e4daaae53afa7
parente2f77f08e02e5630f254dd5bee0d39ba6a68be04
Resolve memory leaks in TLS initialization and TLS client connections

This patch resolves two sources of memory leaks when using TLS in Asterisk:
1) It removes improper initialization (and multiple re-initializations) of
   portions of the SSL library.  Asterisk calls SSL_library_init and
   SSL_load_error_strings during SSL initialization; collectively this
   obviates the need for calling any of the following during initialization
   or client connection handling:
   * ERR_load_crypto_strings (handled by SSL_load_error_strings)
   * OpenSSL_add_all_algorithms (synonym for SSL_library_init)
   * SSLeay_add_ssl_algorithms (synonym for SSL_library_init)
2) Failure to completely clean up all memory allocated by Asterisk and by
   the SSL library for TLS clients.  This included not freeing the SSL_CTX
   object in the SIP channel driver, as well as not clearing the error
   stack when the TLS client exited.

Note that these memory leaks were found by Thomas Arimont, and this patch
was essentially written by him with some minor tweaks.

(closes issue AST-889)
Reported by: Thomas Arimont
Tested by: Thomas Arimont
patches:
  (bugAST-889.patch) by Thomas Arimont (license 5525)

Review: https://reviewboard.asterisk.org/r/2105
........

Merged revisions 373061 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 373062 from http://svn.asterisk.org/svn/asterisk/branches/10

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/11@373079 65c4cc65-6c06-0410-ace0-fbb531ad65f3
channels/chan_sip.c
main/libasteriskssl.c
main/tcptls.c