]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - net/bridge/netfilter/ebt_among.c
netfilter: xtables: change matches to return error code
[net-next-2.6.git] / net / bridge / netfilter / ebt_among.c
index b595f091f35b9cf1c2fc9bd6378edbc5fc5a90a2..20068e03fa81674a40fac84f44c33dd125a46eda 100644 (file)
@@ -7,6 +7,7 @@
  *  August, 2003
  *
  */
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 #include <linux/ip.h>
 #include <linux/if_arp.h>
 #include <linux/module.h>
@@ -171,7 +172,7 @@ ebt_among_mt(const struct sk_buff *skb, const struct xt_match_param *par)
        return true;
 }
 
-static bool ebt_among_mt_check(const struct xt_mtchk_param *par)
+static int ebt_among_mt_check(const struct xt_mtchk_param *par)
 {
        const struct ebt_among_info *info = par->matchinfo;
        const struct ebt_entry_match *em =
@@ -186,24 +187,20 @@ static bool ebt_among_mt_check(const struct xt_mtchk_param *par)
        expected_length += ebt_mac_wormhash_size(wh_src);
 
        if (em->match_size != EBT_ALIGN(expected_length)) {
-               printk(KERN_WARNING
-                      "ebtables: among: wrong size: %d "
-                      "against expected %d, rounded to %Zd\n",
-                      em->match_size, expected_length,
-                      EBT_ALIGN(expected_length));
-               return false;
+               pr_info("wrong size: %d against expected %d, rounded to %Zd\n",
+                       em->match_size, expected_length,
+                       EBT_ALIGN(expected_length));
+               return -EINVAL;
        }
        if (wh_dst && (err = ebt_mac_wormhash_check_integrity(wh_dst))) {
-               printk(KERN_WARNING
-                      "ebtables: among: dst integrity fail: %x\n", -err);
-               return false;
+               pr_info("dst integrity fail: %x\n", -err);
+               return -EINVAL;
        }
        if (wh_src && (err = ebt_mac_wormhash_check_integrity(wh_src))) {
-               printk(KERN_WARNING
-                      "ebtables: among: src integrity fail: %x\n", -err);
-               return false;
+               pr_info("src integrity fail: %x\n", -err);
+               return -EINVAL;
        }
-       return true;
+       return 0;
 }
 
 static struct xt_match ebt_among_mt_reg __read_mostly = {