From d46c1a8126efe3942bc165af5bdf40fb145c1365 Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Fri, 28 Sep 2001 00:44:44 +0000 Subject: [PATCH 1/1] Support fractional seconds in GeneralizedTime --- CHANGES | 3 +++ crypto/asn1/a_gentm.c | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/CHANGES b/CHANGES index 349ede197e..d5959af5e4 100644 --- a/CHANGES +++ b/CHANGES @@ -12,6 +12,9 @@ *) applies to 0.9.6a/0.9.6b/0.9.6c and 0.9.7 +) applies to 0.9.7 only + +) Change ASN1_GENERALIZEDTIME_check() to allow fractional seconds. + [Steve Henson] + +) Change mkdef.pl to sort symbols that get the same entry number, and make sure the automatically generated functions ERR_load_* become part of libeay.num as well. diff --git a/crypto/asn1/a_gentm.c b/crypto/asn1/a_gentm.c index ef95003510..cd09f68b38 100644 --- a/crypto/asn1/a_gentm.c +++ b/crypto/asn1/a_gentm.c @@ -146,6 +146,19 @@ int ASN1_GENERALIZEDTIME_check(ASN1_GENERALIZEDTIME *d) if ((n < min[i]) || (n > max[i])) goto err; } + /* Optional fractional seconds: decimal point followed by one + * or more digits. + */ + if (a[o] == '.') + { + if (++o > l) goto err; + i = o; + while ((a[o] >= '0') && (a[o] <= '9') && (o <= l)) + o++; + /* Must have at least one digit after decimal point */ + if (i == o) goto err; + } + if (a[o] == 'Z') o++; else if ((a[o] == '+') || (a[o] == '-')) -- 2.34.1