提交 bc2a0dd2 编写于 作者: M Matt Caswell

The function X509_gmtime_adj() can fail

Check for a failure and free a_tm as appropriate.

Found by Coverity
Reviewed-by: NBernd Edlinger <bernd.edlinger@hotmail.de>
(Merged from https://github.com/openssl/openssl/pull/5339)
上级 c4715212
...@@ -1095,13 +1095,13 @@ end_of_options: ...@@ -1095,13 +1095,13 @@ end_of_options:
goto end; goto end;
tmptm = ASN1_TIME_new(); tmptm = ASN1_TIME_new();
if (tmptm == NULL) if (tmptm == NULL
goto end; || X509_gmtime_adj(tmptm, 0) == NULL
X509_gmtime_adj(tmptm, 0); || !X509_CRL_set1_lastUpdate(crl, tmptm)
X509_CRL_set1_lastUpdate(crl, tmptm); || X509_time_adj_ex(tmptm, crldays, crlhours * 60 * 60 + crlsec,
if (!X509_time_adj_ex(tmptm, crldays, crlhours * 60 * 60 + crlsec, NULL) == NULL) {
NULL)) {
BIO_puts(bio_err, "error setting CRL nextUpdate\n"); BIO_puts(bio_err, "error setting CRL nextUpdate\n");
ASN1_TIME_free(tmptm);
goto end; goto end;
} }
X509_CRL_set1_nextUpdate(crl, tmptm); X509_CRL_set1_nextUpdate(crl, tmptm);
...@@ -2209,7 +2209,10 @@ static int do_updatedb(CA_DB *db) ...@@ -2209,7 +2209,10 @@ static int do_updatedb(CA_DB *db)
return -1; return -1;
/* get actual time and make a string */ /* get actual time and make a string */
a_tm = X509_gmtime_adj(a_tm, 0); if (X509_gmtime_adj(a_tm, 0) == NULL) {
ASN1_UTCTIME_free(a_tm);
return -1;
}
a_tm_s = app_malloc(a_tm->length + 1, "time string"); a_tm_s = app_malloc(a_tm->length + 1, "time string");
memcpy(a_tm_s, a_tm->data, a_tm->length); memcpy(a_tm_s, a_tm->data, a_tm->length);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册