summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ci/travis.sh12
-rw-r--r--program/src/cert_session.cpp18
2 files changed, 20 insertions, 10 deletions
diff --git a/ci/travis.sh b/ci/travis.sh
index 79a796c..36b02a6 100644
--- a/ci/travis.sh
+++ b/ci/travis.sh
@@ -7,12 +7,12 @@ chmod +x ci/get-nprocessors.sh
# if possible, ask for the precise number of processors,
# otherwise take 2 processors as reasonable default; see
# https://docs.travis-ci.com/user/speeding-up-the-build/#Makefile-optimization
-if [ -x /usr/bin/getconf ]; then
- NPROCESSORS=$(/usr/bin/getconf _NPROCESSORS_ONLN)
-else
- NPROCESSORS=2
-fi
-
+#if [ -x /usr/bin/getconf ]; then
+# NPROCESSORS=$(/usr/bin/getconf _NPROCESSORS_ONLN)
+#else
+# NPROCESSORS=2
+#fi
+NPROCESSORS=1
# as of 2017-09-04 Travis CI reports 32 processors, but GCC build
# crashes if parallelized too much (maybe memory consumption problem),
# so limit to 4 processors for the time being.
diff --git a/program/src/cert_session.cpp b/program/src/cert_session.cpp
index dfcf803..d2bd30a 100644
--- a/program/src/cert_session.cpp
+++ b/program/src/cert_session.cpp
@@ -862,7 +862,7 @@ int X509_hsm_sign(X509* x509, unsigned long mech, CK_SESSION_HANDLE session)
CK_OBJECT_HANDLE hObject = 0;
#ifdef SOHT_HSM_ENABLE
- mech = CKM_CERTEX_GOSTR3410_2001;
+ mech = CKM_SHA256_RSA_PKCS;
xret = soft_find_object(session, CKO_PRIVATE_KEY, &hObject);
#else
xret = x509_find_object(session, &hObject);
@@ -1039,8 +1039,6 @@ X509 *ssl_x509_forge(X509 *cacrt, EVP_PKEY *cakey, X509 *origcrt, char *pkey, in
return crt;
errout:
X509_free(crt);
- if(key)
- EVP_PKEY_free(key);
err:
return NULL;
}
@@ -1537,8 +1535,11 @@ static int redis_clnt_pdu_send(struct tfe_http_request *request)
char *sign = NULL, pkey[SG_DATA_SIZE] = {0};
uint64_t expire_time = x509_online_append(&thread->def, request, &sign, pkey, &stack_ca);
- if (sign == NULL && pkey[0] == '\0')
+ if (sign == NULL || pkey[0] == '\0')
{
+ if (request->origin)
+ X509_free(request->origin);
+ request_destroy(request);
mesa_runtime_log(RLOG_LV_FATAL, MODULE_NAME, "Failed to sign certificate");
evhttp_socket_send_error(request->evh_req, HTTP_NOTFOUND);
return xret;
@@ -1902,6 +1903,7 @@ void http_get_cb(struct evhttp_request *evh_req, void *arg)
{
if (xret == -2)
{
+ request_destroy(request);
evhttp_send_reply(evh_req, 200, "OK", NULL);
goto finish;
}
@@ -2277,6 +2279,14 @@ void sigproc(int __attribute__((__unused__))sig)
for (tid = 0; tid < g_certstore_policy->thread_nu; tid++)
{
thread = threads + tid;
+
+ struct x509_object_ctx *def = &thread->def;
+
+ if(def->root) X509_free(def->root);
+ if(def->key) EVP_PKEY_free(def->key);
+ if(def->insec_root) X509_free(def->insec_root);
+ if(def->insec_key) EVP_PKEY_free(def->insec_key);
+
if (thread->sync)
{
redisAsyncDisconnect(thread->cl_ctx);