diff options
author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2015-12-02 09:33:25 -0800 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2015-12-02 09:33:25 -0800 |
commit | ef0902bd956672dc33d6f7dd7bcaff9f769ac5c3 (patch) | |
tree | 50a07d35f4a47620c4c611db434bf4fce05b9260 /crypto/asymmetric_keys/x509_cert_parser.c | |
parent | 82d748eb43a673a56b639efd4d698e1e95715d82 (diff) | |
parent | d3dd09594f91ee57e76cbc27023b214afa01a99a (diff) | |
download | linux-crypto-ef0902bd956672dc33d6f7dd7bcaff9f769ac5c3.tar.gz linux-crypto-ef0902bd956672dc33d6f7dd7bcaff9f769ac5c3.zip |
Merge tag 'v4.4-rc3' into next
Merge with Linux 4.4-rc3 to bring in helpers for multiu-driver modules.
Diffstat (limited to 'crypto/asymmetric_keys/x509_cert_parser.c')
-rw-r--r-- | crypto/asymmetric_keys/x509_cert_parser.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/crypto/asymmetric_keys/x509_cert_parser.c b/crypto/asymmetric_keys/x509_cert_parser.c index af71878d..021d39c0 100644 --- a/crypto/asymmetric_keys/x509_cert_parser.c +++ b/crypto/asymmetric_keys/x509_cert_parser.c @@ -531,7 +531,11 @@ int x509_decode_time(time64_t *_t, size_t hdrlen, if (*p != 'Z') goto unsupported_time; - mon_len = month_lengths[mon]; + if (year < 1970 || + mon < 1 || mon > 12) + goto invalid_time; + + mon_len = month_lengths[mon - 1]; if (mon == 2) { if (year % 4 == 0) { mon_len = 29; @@ -543,14 +547,12 @@ int x509_decode_time(time64_t *_t, size_t hdrlen, } } - if (year < 1970 || - mon < 1 || mon > 12 || - day < 1 || day > mon_len || - hour < 0 || hour > 23 || - min < 0 || min > 59 || - sec < 0 || sec > 59) + if (day < 1 || day > mon_len || + hour > 23 || + min > 59 || + sec > 59) goto invalid_time; - + *_t = mktime64(year, mon, day, hour, min, sec); return 0; |