diff options
author | Jan Engelhardt <jengelh@medozas.de> | 2010-02-15 10:31:35 -0500 |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2010-02-15 10:31:35 -0500 |
commit | 98e6d2d5ee26bf56850a10eb64139c68fb09ba19 (patch) | |
tree | 055bf0f62ae891886357a8b5280fd7d9956cd62d | |
parent | ca1c2e2da9637c131436bf6d6ae41b58f5353afe (diff) |
netfilter: xt_recent: inform user when hitcount is too large
It is one of these things that iptables cannot catch and which can
cause "Invalid argument" to be printed. Without a hint in dmesg, it is
not going to be helpful.
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
Signed-off-by: Patrick McHardy <kaber@trash.net>
-rw-r--r-- | net/netfilter/xt_recent.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/net/netfilter/xt_recent.c b/net/netfilter/xt_recent.c index 203333107367..132cfaa84cdc 100644 --- a/net/netfilter/xt_recent.c +++ b/net/netfilter/xt_recent.c | |||
@@ -53,7 +53,7 @@ module_param(ip_list_perms, uint, 0400); | |||
53 | module_param(ip_list_uid, uint, 0400); | 53 | module_param(ip_list_uid, uint, 0400); |
54 | module_param(ip_list_gid, uint, 0400); | 54 | module_param(ip_list_gid, uint, 0400); |
55 | MODULE_PARM_DESC(ip_list_tot, "number of IPs to remember per list"); | 55 | MODULE_PARM_DESC(ip_list_tot, "number of IPs to remember per list"); |
56 | MODULE_PARM_DESC(ip_pkt_list_tot, "number of packets per IP to remember (max. 255)"); | 56 | MODULE_PARM_DESC(ip_pkt_list_tot, "number of packets per IP address to remember (max. 255)"); |
57 | MODULE_PARM_DESC(ip_list_hash_size, "size of hash table used to look up IPs"); | 57 | MODULE_PARM_DESC(ip_list_hash_size, "size of hash table used to look up IPs"); |
58 | MODULE_PARM_DESC(ip_list_perms, "permissions on /proc/net/xt_recent/* files"); | 58 | MODULE_PARM_DESC(ip_list_perms, "permissions on /proc/net/xt_recent/* files"); |
59 | MODULE_PARM_DESC(ip_list_uid,"owner of /proc/net/xt_recent/* files"); | 59 | MODULE_PARM_DESC(ip_list_uid,"owner of /proc/net/xt_recent/* files"); |
@@ -306,8 +306,12 @@ static bool recent_mt_check(const struct xt_mtchk_param *par) | |||
306 | if ((info->check_set & (XT_RECENT_SET | XT_RECENT_REMOVE)) && | 306 | if ((info->check_set & (XT_RECENT_SET | XT_RECENT_REMOVE)) && |
307 | (info->seconds || info->hit_count)) | 307 | (info->seconds || info->hit_count)) |
308 | return false; | 308 | return false; |
309 | if (info->hit_count > ip_pkt_list_tot) | 309 | if (info->hit_count > ip_pkt_list_tot) { |
310 | pr_info(KBUILD_MODNAME ": hitcount (%u) is larger than " | ||
311 | "packets to be remembered (%u)\n", | ||
312 | info->hit_count, ip_pkt_list_tot); | ||
310 | return false; | 313 | return false; |
314 | } | ||
311 | if (info->name[0] == '\0' || | 315 | if (info->name[0] == '\0' || |
312 | strnlen(info->name, XT_RECENT_NAME_LEN) == XT_RECENT_NAME_LEN) | 316 | strnlen(info->name, XT_RECENT_NAME_LEN) == XT_RECENT_NAME_LEN) |
313 | return false; | 317 | return false; |