提交 98c03302 编写于 作者: M Miroslav Suk 提交者: Andy Polyakov

o_time.c: use gmtime_s with MSVC

ts/ts_rsp_sign.c: change to OPENSSL_gmtime.
Reviewed-by: NAndy Polyakov <appro@openssl.org>
Reviewed-by: NRich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5720)
上级 c4eec78d
...@@ -41,6 +41,10 @@ struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result) ...@@ -41,6 +41,10 @@ struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result)
if (gmtime_r(timer, result) == NULL) if (gmtime_r(timer, result) == NULL)
return NULL; return NULL;
ts = result; ts = result;
#elif defined (OPENSSL_SYS_WINDOWS) && defined(_MSC_VER) && _MSC_VER >= 1400
if (gmtime_s(result, timer))
return NULL;
ts = result;
#else #else
ts = gmtime(timer); ts = gmtime(timer);
if (ts == NULL) if (ts == NULL)
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include <openssl/objects.h> #include <openssl/objects.h>
#include <openssl/ts.h> #include <openssl/ts.h>
#include <openssl/pkcs7.h> #include <openssl/pkcs7.h>
#include <openssl/crypto.h>
#include "ts_lcl.h" #include "ts_lcl.h"
static ASN1_INTEGER *def_serial_cb(struct TS_resp_ctx *, void *); static ASN1_INTEGER *def_serial_cb(struct TS_resp_ctx *, void *);
...@@ -986,7 +987,7 @@ static ASN1_GENERALIZEDTIME *TS_RESP_set_genTime_with_precision( ...@@ -986,7 +987,7 @@ static ASN1_GENERALIZEDTIME *TS_RESP_set_genTime_with_precision(
unsigned precision) unsigned precision)
{ {
time_t time_sec = (time_t)sec; time_t time_sec = (time_t)sec;
struct tm *tm = NULL; struct tm *tm = NULL, tm_result;
char genTime_str[17 + TS_MAX_CLOCK_PRECISION_DIGITS]; char genTime_str[17 + TS_MAX_CLOCK_PRECISION_DIGITS];
char *p = genTime_str; char *p = genTime_str;
char *p_end = genTime_str + sizeof(genTime_str); char *p_end = genTime_str + sizeof(genTime_str);
...@@ -994,7 +995,7 @@ static ASN1_GENERALIZEDTIME *TS_RESP_set_genTime_with_precision( ...@@ -994,7 +995,7 @@ static ASN1_GENERALIZEDTIME *TS_RESP_set_genTime_with_precision(
if (precision > TS_MAX_CLOCK_PRECISION_DIGITS) if (precision > TS_MAX_CLOCK_PRECISION_DIGITS)
goto err; goto err;
if ((tm = gmtime(&time_sec)) == NULL) if ((tm = OPENSSL_gmtime(&time_sec, &tm_result)) == NULL)
goto err; goto err;
/* /*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册