Fix memory leak during multi-message reception using STARTTLS
[exim.git] / src / src / tls-gnu.c
index dab96974ce8fc2c33dc9810299b1b2d8e707c51b..38e8eab09a3efc451a0579aa56dac61cd326846b 100644 (file)
@@ -2464,9 +2464,10 @@ gnutls_certificate_free_credentials(state->x509_cred);
 
 
 state->tlsp->active = -1;
 
 
 state->tlsp->active = -1;
+if (state->xfer_buffer) store_free(state->xfer_buffer);
 memcpy(state, &exim_gnutls_state_init, sizeof(exim_gnutls_state_init));
 
 memcpy(state, &exim_gnutls_state_init, sizeof(exim_gnutls_state_init));
 
-if ((state_server.session == NULL) && (state_client.session == NULL))
+if (!state_server.session && !state_client.session)
   {
   gnutls_global_deinit();
   exim_gnutls_base_init_done = FALSE;
   {
   gnutls_global_deinit();
   exim_gnutls_base_init_done = FALSE;