netfilter: nft_limit: fix divided by zero panic
[cascardo/linux.git] / net / netfilter / nft_limit.c
index 070b989..c6baf41 100644 (file)
@@ -145,7 +145,7 @@ static int nft_limit_pkts_init(const struct nft_ctx *ctx,
        if (err < 0)
                return err;
 
-       priv->cost = div_u64(priv->limit.nsecs, priv->limit.rate);
+       priv->cost = div64_u64(priv->limit.nsecs, priv->limit.rate);
        return 0;
 }
 
@@ -170,7 +170,7 @@ static void nft_limit_pkt_bytes_eval(const struct nft_expr *expr,
                                     const struct nft_pktinfo *pkt)
 {
        struct nft_limit *priv = nft_expr_priv(expr);
-       u64 cost = div_u64(priv->nsecs * pkt->skb->len, priv->rate);
+       u64 cost = div64_u64(priv->nsecs * pkt->skb->len, priv->rate);
 
        if (nft_limit_eval(priv, cost))
                regs->verdict.code = NFT_BREAK;