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)) { |