summaryrefslogtreecommitdiffstats
path: root/runtime/nsd_gtls.c
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/nsd_gtls.c')
-rw-r--r--runtime/nsd_gtls.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/runtime/nsd_gtls.c b/runtime/nsd_gtls.c
index fb2e219d..744020e9 100644
--- a/runtime/nsd_gtls.c
+++ b/runtime/nsd_gtls.c
@@ -112,7 +112,7 @@ readFile(uchar *pszFile, gnutls_datum_t *pBuf)
pBuf->data = NULL;
- if((fd = open((char*)pszFile, 0)) == -1) {
+ if((fd = open((char*)pszFile, O_RDONLY)) == -1) {
errmsg.LogError(0, RS_RET_FILE_NOT_FOUND, "can not read file '%s'", pszFile);
ABORT_FINALIZE(RS_RET_FILE_NOT_FOUND);
@@ -201,10 +201,14 @@ finalize_it:
if(iRet != RS_RET_OK) {
if(data.data != NULL)
free(data.data);
- if(pThis->bOurCertIsInit)
+ if(pThis->bOurCertIsInit) {
gnutls_x509_crt_deinit(pThis->ourCert);
- if(pThis->bOurKeyIsInit)
+ pThis->bOurCertIsInit = 0;
+ }
+ if(pThis->bOurKeyIsInit) {
gnutls_x509_privkey_deinit(pThis->ourKey);
+ pThis->bOurKeyIsInit = 0;
+ }
}
RETiRet;
}
@@ -1118,6 +1122,7 @@ gtlsEndSess(nsd_gtls_t *pThis)
}
}
gnutls_deinit(pThis->sess);
+ pThis->bHaveSess = 0;
}
RETiRet;
}
@@ -1171,6 +1176,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)