summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2019-11-08 23:34:28 +0300
committerPablo Neira Ayuso <pablo@netfilter.org>2019-11-16 01:44:45 +0300
commitfcbad8293d52864d87d0b9f6035fd87a049d59d8 (patch)
tree90aa85f03539f685e6c38ce09f2a99a72437ab84 /Documentation
parent3944a4fd0d7015523d55e50fdaa40d12523f2e6a (diff)
downloadlinux-fcbad8293d52864d87d0b9f6035fd87a049d59d8.tar.xz
netfilter: xt_time: use time64_t
The current xt_time driver suffers from the y2038 overflow on 32-bit architectures, when the time of day calculations break. Also, on both 32-bit and 64-bit architectures, there is a problem with info->date_start/stop, which is part of the user ABI and overflows in in 2106. Fix the first issue by using time64_t and explicit calls to div_u64() and div_u64_rem(), and document the seconds issue. The explicit 64-bit division is unfortunately slower on 32-bit architectures, but doing it as unsigned lets us use the optimized division-through-multiplication path in most configurations. This should be fine, as the code already does not allow any negative time of day values. Using u32 seconds values consistently would probably also work and be a little more efficient, but that doesn't feel right as it would propagate the y2106 overflow to more place rather than fewer. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'Documentation')
0 files changed, 0 insertions, 0 deletions