From: Qingfang Deng Date: Mon, 29 Dec 2025 06:26:07 +0000 (+0100) Subject: xt_pknock: fix do_div() signness mismatch X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3c5c336fc0e47fea9baa912fc8d314ae9d1fa521;p=thirdparty%2Fxtables-addons.git xt_pknock: fix do_div() signness mismatch do_div() expects an unsigned 64-bit dividend, but time64_t is signed. On 32-bit arch, this triggers a warnning: In file included from ./arch/arm/include/asm/div64.h:107, from ./include/linux/math.h:6, from ./include/linux/math64.h:6, from ./include/linux/time.h:6, from ./include/linux/stat.h:19, from ./include/linux/module.h:13, from ./xtables-addons-3.30/extensions/pknock/xt_pknock.c:10: ./xtables-addons-3.30/extensions/pknock/xt_pknock.c: In function 'has_secret': ./include/asm-generic/div64.h:222:35: warning: comparison of distinct pointer types lacks a cast [-Wcompare-distinct-pointer-types] 222 | (void)(((typeof((n)) *)0) == ((uint64_t *)0)); \ | ^~ ./xtables-addons-3.30/extensions/pknock/xt_pknock.c:747:17: note: in expansion of macro 'do_div' 747 | do_div(t, 60); | Change the type of variable `t` to uint64_t to fix this. Fixes: 397b282dba9a ("xt_pknock: use walltime for building hash") Signed-off-by: Qingfang Deng --- diff --git a/extensions/pknock/xt_pknock.c b/extensions/pknock/xt_pknock.c index 734e6f2..8cf04de 100644 --- a/extensions/pknock/xt_pknock.c +++ b/extensions/pknock/xt_pknock.c @@ -743,7 +743,7 @@ has_secret(const unsigned char *secret, unsigned int secret_len, uint32_t ipsrc, /* Time needs to be in minutes relative to epoch. */ { - time64_t t = ktime_get_real_seconds(); + uint64_t t = ktime_get_real_seconds(); do_div(t, 60); epoch_min = t; }