diff --git a/ext/openssl/ossl_ssl_session.c b/ext/openssl/ossl_ssl_session.c index 8a2fbf410..0afe6ae82 100644 --- a/ext/openssl/ossl_ssl_session.c +++ b/ext/openssl/ossl_ssl_session.c @@ -183,7 +183,9 @@ static VALUE ossl_ssl_session_set_time(VALUE self, VALUE time_v) time_v = rb_funcall(time_v, rb_intern("to_i"), 0); } t = NUM2LONG(time_v); - SSL_SESSION_set_time(ctx, t); + if (SSL_SESSION_set_time(ctx, t) != t) { + ossl_raise(eSSLSession, "SSL_SESSION_set_time"); + } return ossl_ssl_session_get_time(self); } @@ -200,7 +202,9 @@ static VALUE ossl_ssl_session_set_timeout(VALUE self, VALUE time_v) GetSSLSession(self, ctx); t = NUM2LONG(time_v); - SSL_SESSION_set_timeout(ctx, t); + if (SSL_SESSION_set_timeout(ctx, t) != 1) { + ossl_raise(eSSLSession, "SSL_SESSION_set_timeout"); + } return ossl_ssl_session_get_timeout(self); } diff --git a/ext/openssl/ossl_ts.c b/ext/openssl/ossl_ts.c index 393e08acf..69b603bbf 100644 --- a/ext/openssl/ossl_ts.c +++ b/ext/openssl/ossl_ts.c @@ -441,7 +441,9 @@ ossl_ts_req_set_cert_requested(VALUE self, VALUE requested) TS_REQ *req; GetTSRequest(self, req); - TS_REQ_set_cert_req(req, RTEST(requested)); + if (!TS_REQ_set_cert_req(req, RTEST(requested))) { + ossl_raise(eTimestampError, "TS_REQ_set_cert_req"); + } return requested; } @@ -1233,7 +1235,10 @@ ossl_tsfac_create_ts(VALUE self, VALUE key, VALUE certificate, VALUE request) sk_X509_pop_free(inter_certs, X509_free); } - TS_RESP_CTX_set_signer_key(ctx, sign_key); + if (!TS_RESP_CTX_set_signer_key(ctx, sign_key)) { + err_msg = "Signer key could not be set"; + goto end; + } if (!NIL_P(def_policy_id) && !TS_REQ_get_policy_id(req)) TS_RESP_CTX_set_def_policy(ctx, def_policy_id_obj); if (TS_REQ_get_policy_id(req)) diff --git a/ext/openssl/ossl_x509ext.c b/ext/openssl/ossl_x509ext.c index 1fe727d3f..f0c4023ff 100644 --- a/ext/openssl/ossl_x509ext.c +++ b/ext/openssl/ossl_x509ext.c @@ -363,7 +363,9 @@ ossl_x509ext_set_critical(VALUE self, VALUE flag) X509_EXTENSION *ext; GetX509Ext(self, ext); - X509_EXTENSION_set_critical(ext, RTEST(flag) ? 1 : 0); + if (!X509_EXTENSION_set_critical(ext, RTEST(flag) ? 1 : 0)) { + ossl_raise(eX509ExtError, "X509_EXTENSION_set_critical"); + } return flag; } diff --git a/ext/openssl/ossl_x509store.c b/ext/openssl/ossl_x509store.c index 9e43336c4..c0d9fe6e3 100644 --- a/ext/openssl/ossl_x509store.c +++ b/ext/openssl/ossl_x509store.c @@ -246,7 +246,9 @@ ossl_x509store_set_flags(VALUE self, VALUE flags) long f = NUM2LONG(flags); GetX509Store(self, store); - X509_STORE_set_flags(store, f); + if (!X509_STORE_set_flags(store, f)) { + ossl_raise(eX509StoreError, "X509_STORE_set_flags"); + } return flags; } @@ -281,7 +283,9 @@ ossl_x509store_set_purpose(VALUE self, VALUE purpose) int p = NUM2INT(purpose); GetX509Store(self, store); - X509_STORE_set_purpose(store, p); + if (!X509_STORE_set_purpose(store, p)) { + ossl_raise(eX509StoreError, "X509_STORE_set_purpose"); + } return purpose; } @@ -305,7 +309,9 @@ ossl_x509store_set_trust(VALUE self, VALUE trust) int t = NUM2INT(trust); GetX509Store(self, store); - X509_STORE_set_trust(store, t); + if (!X509_STORE_set_trust(store, t)) { + ossl_raise(eX509StoreError, "X509_STORE_set_trust"); + } return trust; }