aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/netfilter_bridge/ebtables.h
diff options
context:
space:
mode:
authorGao Feng <gfree.wind@vip.163.com>2017-05-16 09:30:18 +0800
committerPablo Neira Ayuso <pablo@netfilter.org>2017-05-16 10:24:27 +0200
commitc953d63548207a085abcb12a15fefc8a11ffdf0a (patch)
tree9c1ef86d8bff6836bfb73e25af1f606f96f9044f /include/linux/netfilter_bridge/ebtables.h
parentnetfilter: nf_tables: revisit chain/object refcounting from elements (diff)
downloadlinux-dev-c953d63548207a085abcb12a15fefc8a11ffdf0a.tar.xz
linux-dev-c953d63548207a085abcb12a15fefc8a11ffdf0a.zip
ebtables: arpreply: Add the standard target sanity check
The info->target comes from userspace and it would be used directly. So we need to add the sanity check to make sure it is a valid standard target, although the ebtables tool has already checked it. Kernel needs to validate anything coming from userspace. If the target is set as an evil value, it would break the ebtables and cause a panic. Because the non-standard target is treated as one offset. Now add one helper function ebt_invalid_target, and we would replace the macro INVALID_TARGET later. Signed-off-by: Gao Feng <gfree.wind@vip.163.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to '')
-rw-r--r--include/linux/netfilter_bridge/ebtables.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/netfilter_bridge/ebtables.h b/include/linux/netfilter_bridge/ebtables.h
index a30efb437e6d..e0cbf17af780 100644
--- a/include/linux/netfilter_bridge/ebtables.h
+++ b/include/linux/netfilter_bridge/ebtables.h
@@ -125,4 +125,9 @@ extern unsigned int ebt_do_table(struct sk_buff *skb,
/* True if the target is not a standard target */
#define INVALID_TARGET (info->target < -NUM_STANDARD_TARGETS || info->target >= 0)
+static inline bool ebt_invalid_target(int target)
+{
+ return (target < -NUM_STANDARD_TARGETS || target >= 0);
+}
+
#endif