From d28e28ce83339e17b8b70cc65a2336db7faf42bf Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Sat, 30 Dec 2023 18:06:25 +0100 Subject: [PATCH] xt_pknock: repair do_div invocation do_div modifies its argument in-place. Account for that behavior. Fixes: v3.15-1-g3aa4ca3 --- extensions/pknock/xt_pknock.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/extensions/pknock/xt_pknock.c b/extensions/pknock/xt_pknock.c index 1606eab..9388c49 100644 --- a/extensions/pknock/xt_pknock.c +++ b/extensions/pknock/xt_pknock.c @@ -343,7 +343,9 @@ has_logged_during_this_minute(const struct peer *peer) return 0; x = ktime_get_seconds(); y = peer->login_sec; - return do_div(y, 60) == do_div(x, 60); + do_div(x, 60); + do_div(y, 60); + return x == y; } /** @@ -731,7 +733,8 @@ has_secret(const unsigned char *secret, unsigned int secret_len, uint32_t ipsrc, if (hexresult == NULL) return false; x = ktime_get_seconds(); - epoch_min = do_div(x, 60); + do_div(x, 60); + epoch_min = x; ret = crypto_shash_setkey(crypto.tfm, secret, secret_len); if (ret != 0) { -- 2.47.3