]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
meta: time: use uint64_t instead of time_t
authorLukas Straub <lukasstraub2@web.de>
Tue, 5 Apr 2022 10:41:14 +0000 (10:41 +0000)
committerPablo Neira Ayuso <pablo@netfilter.org>
Tue, 5 Apr 2022 11:58:44 +0000 (13:58 +0200)
time_t may be 32 bit on some platforms and thus can't fit a timestamp
with nanoseconds resolution. This causes overflows and ultimatively
breaks meta time expressions on such platforms.

Fix this by using uint64_t instead.

Closes: https://bugzilla.netfilter.org/show_bug.cgi?id=1567
Fixes: f8f32deda31df ("meta: Introduce new conditions 'time', 'day' and 'hour'")
Signed-off-by: Lukas Straub <lukasstraub2@web.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/meta.c

index 23b1fd2759483d77d82d1d2b967f752a0afe4415..c0e2608db1ae30e2ee08844aaab56569a7c1ad8c 100644 (file)
@@ -444,7 +444,7 @@ static struct error_record *date_type_parse(struct parse_ctx *ctx,
                                            struct expr **res)
 {
        const char *endptr = sym->identifier;
-       time_t tstamp;
+       uint64_t tstamp;
 
        if ((tstamp = parse_iso_date(sym->identifier)) != -1)
                goto success;