diff options
author | David Howells <dhowells@redhat.com> | 2016-02-24 17:37:15 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-04-12 19:08:46 +0300 |
commit | 499f9ff872f8792d3318b0bd5e6533bfe48abf0d (patch) | |
tree | cdd346b8bc6e28e2b2e3cd8300392b36e1126427 /net/batman-adv | |
parent | f08fc4eed81e135c687ac246531a6dbbd236eb14 (diff) | |
download | linux-499f9ff872f8792d3318b0bd5e6533bfe48abf0d.tar.xz |
X.509: Fix leap year handling again
commit ac4cbedfdf55455b4c447f17f0fa027dbf02b2a6 upstream.
There are still a couple of minor issues in the X.509 leap year handling:
(1) To avoid doing a modulus-by-400 in addition to a modulus-by-100 when
determining whether the year is a leap year or not, I divided the year
by 100 after doing the modulus-by-100, thereby letting the compiler do
one instruction for both, and then did a modulus-by-4.
Unfortunately, I then passed the now-modified year value to mktime64()
to construct a time value.
Since this isn't a fast path and since mktime64() does a bunch of
divisions, just condense down to "% 400". It's also easier to read.
(2) The default month length for any February where the year doesn't
divide by four exactly is obtained from the month_length[] array where
the value is 29, not 28.
This is fixed by altering the table.
Reported-by: Rudolf Polzer <rpolzer@google.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: David Woodhouse <David.Woodhouse@intel.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net/batman-adv')
0 files changed, 0 insertions, 0 deletions