Skip to contentSkip to conversation

: Fix cleanup in ipt_recent

PATCH In review Patrick McHardy 1 participant 1 message Mar 4, 2005 netfilter

lore
Share & tools
lore
#0 lore raw

PATCH 5/8 : Fix cleanup in ipt_recent

# This is a BitKeeper generated diff -Nru style patch. #
# ChangeSet
# 2005/03/04 00:48:18+01:00 [email protected]
# [NETFILTER]: Fix cleanup in ipt_recent
#
# Backport from 2.6, original patch from Rusty:
#
# When ipt_register_match() fails, ipt_recent doesn't remove its proc
# entry. Found by nfsim.
#
# Signed-off-by: Patrick McHardy <[email protected]>
#

# net/ipv4/netfilter/ipt_recent.c
#   2005/03/04 00:48:16+01:00 [email protected] +5 -2
#   [NETFILTER]: Fix cleanup in ipt_recent
#   
#   Backport from 2.6, original patch from Rusty:
#   
#   When ipt_register_match() fails, ipt_recent doesn't remove its proc
#   entry.  Found by nfsim.
#   
#   Signed-off-by: Patrick McHardy <[email protected]>
# 
diff -Nru a/net/ipv4/netfilter/ipt_recent.c b/net/ipv4/netfilter/ipt_recent.c
--- a/net/ipv4/netfilter/ipt_recent.c	2005-03-04 01:52:05 +01:00
+++ b/net/ipv4/netfilter/ipt_recent.c	2005-03-04 01:52:05 +01:00
@@ -962,7 +962,7 @@
 /* Kernel module initialization. */
 static int __init init(void)
 {
-	int count;
+	int err, count;

printk(version);
#ifdef CONFIG_PROC_FS
@@ -986,7 +986,10 @@
if(debug) printk(KERN_INFO RECENT_NAME ": ip_list_hash_size: %d\n",ip_list_hash_size);
#endif

- return ipt_register_match(&recent_match);
+ err = ipt_register_match(&recent_match);
+ if (err)
+ remove_proc_entry("ipt_recent", proc_net);
+ return err;
}

/* Kernel module destruction. */