diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2011-06-14 14:22:37 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2011-06-14 14:22:37 +0200 |
commit | f4c5f0a4cc2b06865e048d7c7c716ca7ca2a3b06 (patch) | |
tree | 923b0bdf2e87fa7e28eaf735ed037f56289730cb | |
parent | 49d7b4cd666429ece524ea4b3b2bd4041b5662e5 (diff) | |
parent | 6afbb39ea197623688e36b74f81f5ec45d0b15ff (diff) | |
download | rsyslog-f4c5f0a4cc2b06865e048d7c7c716ca7ca2a3b06.tar.gz rsyslog-f4c5f0a4cc2b06865e048d7c7c716ca7ca2a3b06.tar.xz rsyslog-f4c5f0a4cc2b06865e048d7c7c716ca7ca2a3b06.zip |
Merge branch 'v4-devel' into v5-devel
Conflicts:
tcpsrv.c
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | runtime/nsd_gtls.c | 3 | ||||
-rw-r--r-- | tcpsrv.c | 4 |
3 files changed, 9 insertions, 1 deletions
@@ -866,6 +866,9 @@ Version 4.7.0 [v4-devel] (rgerhards), 2010-04-14 - imported changes from 4.5.6 and below --------------------------------------------------------------------------- Version 4.6.6 [v4-stable] (rgerhards), 2010-11-?? +- bugfix: memory leak in imtcp & subsystems under some circumstances + This leak is tied to error conditions which lead to incorrect cleanup + of some data structures. [backport from v6, limited testing under v4] - bugfix: invalid processing in QUEUE_FULL condition If the the multi-submit interface was used and a QUEUE_FULL condition occured, the failed message was properly destructed. However, the diff --git a/runtime/nsd_gtls.c b/runtime/nsd_gtls.c index 152dc8de..ca4b2928 100644 --- a/runtime/nsd_gtls.c +++ b/runtime/nsd_gtls.c @@ -1121,6 +1121,7 @@ gtlsEndSess(nsd_gtls_t *pThis) } } gnutls_deinit(pThis->sess); + pThis->bHaveSess = 0; } RETiRet; } @@ -1174,6 +1175,8 @@ CODESTARTobjDestruct(nsd_gtls) gnutls_x509_crt_deinit(pThis->ourCert); if(pThis->bOurKeyIsInit) gnutls_x509_privkey_deinit(pThis->ourKey); + if(pThis->bHaveSess) + gnutls_deinit(pThis->sess); ENDobjDestruct(nsd_gtls) @@ -622,7 +622,9 @@ finalize_it: /* this is a very special case - this time only we do not exit the * crashed, which made sense (the rest of the engine was not prepared for * that) -- rgerhards, 2008-05-19 */ - /*EMPTY*/; + if(pSel != NULL) { /* cleanup missing? happens during err exit! */ + nssel.Destruct(&pSel); + } } /* note that this point is usually not reached */ |