summaryrefslogtreecommitdiffstats
path: root/kernel/patches/incremental-patches/ebtables-v2.0_vs_2.4.18.pre5.001.diff
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/patches/incremental-patches/ebtables-v2.0_vs_2.4.18.pre5.001.diff')
-rw-r--r--kernel/patches/incremental-patches/ebtables-v2.0_vs_2.4.18.pre5.001.diff51
1 files changed, 51 insertions, 0 deletions
diff --git a/kernel/patches/incremental-patches/ebtables-v2.0_vs_2.4.18.pre5.001.diff b/kernel/patches/incremental-patches/ebtables-v2.0_vs_2.4.18.pre5.001.diff
new file mode 100644
index 0000000..ba86d00
--- /dev/null
+++ b/kernel/patches/incremental-patches/ebtables-v2.0_vs_2.4.18.pre5.001.diff
@@ -0,0 +1,51 @@
+--- linux/net/bridge/netfilter/ebtables.c Fri May 3 20:37:08 2002
++++ ebt2.0pre5.001/net/bridge/netfilter/ebtables.c Fri May 3 20:28:46 2002
+@@ -124,17 +124,26 @@
+ (point->logical_out), &out->br_port->br->dev), EBT_ILOGICALOUT))
+
+ ) {
+- if ( (point->bitmask & EBT_SOURCEMAC) &&
+- FWINV(!!memcmp(point->sourcemac,
+- ((**pskb).mac.ethernet)->h_source, ETH_ALEN),
+- EBT_ISOURCE) )
+- goto letscontinue;
++ char hlpmac[6];
++ int j;
+
+- if ( (point->bitmask & EBT_DESTMAC) &&
+- FWINV(!!memcmp(point->destmac,
+- ((**pskb).mac.ethernet)->h_dest, ETH_ALEN),
+- EBT_IDEST) )
+- goto letscontinue;
++ if (point->bitmask & EBT_SOURCEMAC) {
++ for (j = 0; j < 6; j++)
++ hlpmac[j] = ((**pskb).mac.ethernet)->
++ h_source[j] & point->sourcemsk[j];
++ if (FWINV(!!memcmp(point->sourcemac, hlpmac,
++ ETH_ALEN), EBT_ISOURCE) )
++ goto letscontinue;
++ }
++
++ if (point->bitmask & EBT_DESTMAC) {
++ for (j = 0; j < 6; j++)
++ hlpmac[j] = ((**pskb).mac.ethernet)->
++ h_dest[j] & point->destmsk[j];
++ if (FWINV(!!memcmp(point->destmac, hlpmac,
++ ETH_ALEN), EBT_IDEST) )
++ goto letscontinue;
++ }
+
+ if (EBT_MATCH_ITERATE(point, ebt_do_match, *pskb, in,
+ out, counter_base + i) != 0)
+--- linux/include/linux/netfilter_bridge/ebtables.h Fri May 3 20:37:08 2002
++++ ebt2.0pre5.001/include/linux/netfilter_bridge/ebtables.h Thu May 2 19:01:09 2002
+@@ -136,7 +136,9 @@
+ // the logical out-dev
+ __u8 logical_out[IFNAMSIZ];
+ __u8 sourcemac[ETH_ALEN];
++ __u8 sourcemsk[ETH_ALEN];
+ __u8 destmac[ETH_ALEN];
++ __u8 destmsk[ETH_ALEN];
+ // sizeof ebt_entry + matches
+ __u16 watchers_offset;
+ // sizeof ebt_entry + matches + watchers