diff options
| -rw-r--r-- | src/gnutls_io.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/gnutls_io.c b/src/gnutls_io.c index 65e128d..b06afd7 100644 --- a/src/gnutls_io.c +++ b/src/gnutls_io.c | |||
| @@ -381,7 +381,8 @@ tryagain: | |||
| 381 | #endif | 381 | #endif |
| 382 | gnutls_alert_send(ctxt->session, GNUTLS_AL_FATAL, | 382 | gnutls_alert_send(ctxt->session, GNUTLS_AL_FATAL, |
| 383 | gnutls_error_to_alert(ret, NULL)); | 383 | gnutls_error_to_alert(ret, NULL)); |
| 384 | gnutls_deinit(ctxt->session); | 384 | if (ctxt->session) gnutls_deinit(ctxt->session); |
| 385 | ctxt->session = NULL; | ||
| 385 | return -1; | 386 | return -1; |
| 386 | } | 387 | } |
| 387 | 388 | ||
| @@ -412,7 +413,8 @@ tryagain: | |||
| 412 | ctxt->status = -1; | 413 | ctxt->status = -1; |
| 413 | gnutls_alert_send(ctxt->session, GNUTLS_AL_FATAL, | 414 | gnutls_alert_send(ctxt->session, GNUTLS_AL_FATAL, |
| 414 | gnutls_error_to_alert(ret, NULL)); | 415 | gnutls_error_to_alert(ret, NULL)); |
| 415 | gnutls_deinit(ctxt->session); | 416 | if (ctxt->session) gnutls_deinit(ctxt->session); |
| 417 | ctxt->session = NULL; | ||
| 416 | return ret; | 418 | return ret; |
| 417 | } | 419 | } |
| 418 | else { | 420 | else { |
| @@ -555,7 +557,8 @@ apr_status_t mgs_filter_output(ap_filter_t * f, | |||
| 555 | } | 557 | } |
| 556 | 558 | ||
| 557 | apr_brigade_cleanup(ctxt->output_bb); | 559 | apr_brigade_cleanup(ctxt->output_bb); |
| 558 | gnutls_deinit(ctxt->session); | 560 | if (ctxt->session) gnutls_deinit(ctxt->session); |
| 561 | ctxt->session = NULL; | ||
| 559 | continue; | 562 | continue; |
| 560 | 563 | ||
| 561 | } else if (APR_BUCKET_IS_FLUSH(bucket) || APR_BUCKET_IS_EOS(bucket)) { | 564 | } else if (APR_BUCKET_IS_FLUSH(bucket) || APR_BUCKET_IS_EOS(bucket)) { |
