Commit 3cf2f450 authored by Todd Seidelmann's avatar Todd Seidelmann Committed by Pablo Neira Ayuso
Browse files

netfilter: xt_physdev: Fix spurious error message in physdev_mt_check



Simplify the check in physdev_mt_check() to emit an error message
only when passed an invalid chain (ie, NF_INET_LOCAL_OUT).
This avoids cluttering up the log with errors against valid rules.

For large/heavily modified rulesets, current behavior can quickly
overwhelm the ring buffer, because this function gets called on
every change, regardless of the rule that was changed.

Signed-off-by: default avatarTodd Seidelmann <tseidelmann@linode.com>
Acked-by: default avatarFlorian Westphal <fw@strlen.de>
Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
parent f53a7ad1
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -101,10 +101,8 @@ static int physdev_mt_check(const struct xt_mtchk_param *par)
	if (info->bitmask & (XT_PHYSDEV_OP_OUT | XT_PHYSDEV_OP_ISOUT) &&
	    (!(info->bitmask & XT_PHYSDEV_OP_BRIDGED) ||
	     info->invert & XT_PHYSDEV_OP_BRIDGED) &&
	    par->hook_mask & ((1 << NF_INET_LOCAL_OUT) |
	    (1 << NF_INET_FORWARD) | (1 << NF_INET_POST_ROUTING))) {
	    par->hook_mask & (1 << NF_INET_LOCAL_OUT)) {
		pr_info_ratelimited("--physdev-out and --physdev-is-out only supported in the FORWARD and POSTROUTING chains with bridged traffic\n");
		if (par->hook_mask & (1 << NF_INET_LOCAL_OUT))
		return -EINVAL;
	}