summaryrefslogtreecommitdiffstats
path: root/net/bridge
diff options
context:
space:
mode:
authorSabrina Dubroca <sd@queasysnail.net>2016-08-23 10:20:31 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2016-08-25 13:18:06 +0200
commit4249fc1f023a2106170bbf715e2e1a0ebc2d5b1f (patch)
treef284a9e589afb5f5c9cf47bf03554c03dd145351 /net/bridge
parentnetfilter: nft_meta: improve the validity check of pkttype set expr (diff)
downloadlinux-4249fc1f023a2106170bbf715e2e1a0ebc2d5b1f.tar.xz
linux-4249fc1f023a2106170bbf715e2e1a0ebc2d5b1f.zip
netfilter: ebtables: put module reference when an incorrect extension is found
commit bcf493428840 ("netfilter: ebtables: Fix extension lookup with identical name") added a second lookup in case the extension that was found during the first lookup matched another extension with the same name, but didn't release the reference on the incorrect module. Fixes: bcf493428840 ("netfilter: ebtables: Fix extension lookup with identical name") Signed-off-by: Sabrina Dubroca <sd@queasysnail.net> Acked-by: Phil Sutter <phil@nwl.cc> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net/bridge')
-rw-r--r--net/bridge/netfilter/ebtables.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/bridge/netfilter/ebtables.c b/net/bridge/netfilter/ebtables.c
index cceac5bb658f..0833c251aef7 100644
--- a/net/bridge/netfilter/ebtables.c
+++ b/net/bridge/netfilter/ebtables.c
@@ -368,6 +368,8 @@ ebt_check_match(struct ebt_entry_match *m, struct xt_mtchk_param *par,
match = xt_find_match(NFPROTO_BRIDGE, m->u.name, 0);
if (IS_ERR(match) || match->family != NFPROTO_BRIDGE) {
+ if (!IS_ERR(match))
+ module_put(match->me);
request_module("ebt_%s", m->u.name);
match = xt_find_match(NFPROTO_BRIDGE, m->u.name, 0);
}