Re: [PATCH] netfilter: nat: Do not use ARRAY_SIZE() on spinlocks to fix zero div

From: Pablo Neira Ayuso
Date: Mon Sep 18 2017 - 11:34:18 EST


On Sun, Sep 10, 2017 at 01:41:41PM +0200, Geert Uytterhoeven wrote:
> If no spinlock debugging options (CONFIG_GENERIC_LOCKBREAK,
> CONFIG_DEBUG_SPINLOCK, CONFIG_DEBUG_LOCK_ALLOC) are enabled on a UP
> platform (e.g. m68k defconfig), arch_spinlock_t is an empty struct,
> hence using ARRAY_SIZE(nf_nat_locks) causes a division by zero:
>
> net/netfilter/nf_nat_core.c: In function ânf_nat_setup_infoâ:
> net/netfilter/nf_nat_core.c:432: warning: division by zero
> net/netfilter/nf_nat_core.c: In function â__nf_nat_cleanup_conntrackâ:
> net/netfilter/nf_nat_core.c:535: warning: division by zero
> net/netfilter/nf_nat_core.c:537: warning: division by zero
> net/netfilter/nf_nat_core.c: In function ânf_nat_initâ:
> net/netfilter/nf_nat_core.c:810: warning: division by zero
> net/netfilter/nf_nat_core.c:811: warning: division by zero
> net/netfilter/nf_nat_core.c:824: warning: division by zero
>
> Fix this by using the CONNTRACK_LOCKS definition instead.

Applied.