netfilter: ctnetlink: fix timeout calculation
The sanity check (timeout < 0) never works; the dividend is unsigned and so is the division, which should have been a signed division. long timeout = (ct->timeout.expires - jiffies) / HZ; if (timeout < 0) timeout = 0; This patch converts the time values to signed for the division. Signed-off-by: Xi Wang <xi.wang@gmail.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
parent
52793dbe3d
commit
c121638277
@ -135,7 +135,7 @@ nla_put_failure:
|
||||
static inline int
|
||||
ctnetlink_dump_timeout(struct sk_buff *skb, const struct nf_conn *ct)
|
||||
{
|
||||
long timeout = (ct->timeout.expires - jiffies) / HZ;
|
||||
long timeout = ((long)ct->timeout.expires - (long)jiffies) / HZ;
|
||||
|
||||
if (timeout < 0)
|
||||
timeout = 0;
|
||||
@ -1641,7 +1641,7 @@ ctnetlink_exp_dump_expect(struct sk_buff *skb,
|
||||
const struct nf_conntrack_expect *exp)
|
||||
{
|
||||
struct nf_conn *master = exp->master;
|
||||
long timeout = (exp->timeout.expires - jiffies) / HZ;
|
||||
long timeout = ((long)exp->timeout.expires - (long)jiffies) / HZ;
|
||||
struct nf_conn_help *help;
|
||||
|
||||
if (timeout < 0)
|
||||
|
Loading…
Reference in New Issue
Block a user