netfilter: ebtables: don't attempt to allocate 0-sized compat array
authorFlorian Westphal <fw@strlen.de>
Wed, 4 Apr 2018 19:13:30 +0000 (21:13 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 16 May 2018 08:10:22 +0000 (10:10 +0200)
commit725f5ae1a6953143101c4e4b963bb5221aa5c466
tree76b64bcb502286a958b9f3e1401e7a3ec7892281
parent88c43b469db5d4c39fba20c293b44cbe78b66e3a
netfilter: ebtables: don't attempt to allocate 0-sized compat array

commit 3f1e53abff84cf40b1adb3455d480dd295bf42e8 upstream.

Dmitry reports 32bit ebtables on 64bit kernel got broken by
a recent change that returns -EINVAL when ruleset has no entries.

ebtables however only counts user-defined chains, so for the
initial table nentries will be 0.

Don't try to allocate the compat array in this case, as no user
defined rules exist no rule will need 64bit translation.

Reported-by: Dmitry Vyukov <dvyukov@google.com>
Fixes: 7d7d7e02111e9 ("netfilter: compat: reject huge allocation requests")
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/bridge/netfilter/ebtables.c