crypto/asn1/a_time.c: Add check for OPENSSL_malloc
authorJiasheng Jiang <jiasheng@iscas.ac.cn>
Wed, 15 Jun 2022 08:07:12 +0000 (16:07 +0800)
committerTomas Mraz <tomas@openssl.org>
Fri, 17 Jun 2022 06:51:11 +0000 (08:51 +0200)
As the potential failure of the OPENSSL_malloc(),
timestamp_tm could be NULL and be used in ASN1_TIME_to_tm()
without check.
Therefore, it should be better to check the return value of
OPENSSL_malloc() and return error if fails.

Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
Reviewed-by: Todd Short <todd.short@me.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/18575)

crypto/asn1/a_time.c

index 4b9a0641fb10627c9f8713b663e403166999139e..a92cdaa89e432882989bbec533398570ed85edff 100644 (file)
@@ -618,7 +618,10 @@ time_t asn1_string_to_time_t(const char *asn1_string)
     }
 
     timestamp_tm = OPENSSL_malloc(sizeof(*timestamp_tm));
-
+    if (timestamp_tm == NULL) {
+        ASN1_TIME_free(timestamp_asn1);
+        return -1;
+    }
     if (!(ASN1_TIME_to_tm(timestamp_asn1, timestamp_tm))) {
         OPENSSL_free(timestamp_tm);
         ASN1_TIME_free(timestamp_asn1);