From db9d9ac38a831f5338675980a4a70079b5df41b0 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 7 Aug 2007 11:43:55 -0700 Subject: [PATCH] another 2.6.22 patch --- .../netfilter-fix-logging-regression.patch | 91 +++++++++++++++++++ queue-2.6.22/series | 1 + 2 files changed, 92 insertions(+) create mode 100644 queue-2.6.22/netfilter-fix-logging-regression.patch diff --git a/queue-2.6.22/netfilter-fix-logging-regression.patch b/queue-2.6.22/netfilter-fix-logging-regression.patch new file mode 100644 index 00000000000..4667e36e0e4 --- /dev/null +++ b/queue-2.6.22/netfilter-fix-logging-regression.patch @@ -0,0 +1,91 @@ +From stable-bounces@linux.kernel.org Wed Jul 25 08:01:19 2007 +From: Patrick McHardy +Date: Wed, 25 Jul 2007 17:00:15 +0200 +Subject: Netfilter: Fix logging regression +To: stable@kernel.org +Cc: Netfilter Development Mailinglist , "David S. Miller" +Message-ID: <46A7657F.20906@trash.net> + +From: Patrick McHardy + +[NETFILTER]: Fix logging regression + +Loading one of the LOG target fails if a different target has already +registered itself as backend for the same family. This can affect the +ipt_LOG and ipt_ULOG modules when both are loaded. + +Reported and tested by: +Upstream-commit: 7e2acc7e + +Signed-off-by: Patrick McHardy +Signed-off-by: Greg Kroah-Hartman + +--- + net/bridge/netfilter/ebt_log.c | 6 ++---- + net/bridge/netfilter/ebt_ulog.c | 8 ++------ + net/ipv4/netfilter/ipt_LOG.c | 6 ++---- + net/ipv6/netfilter/ip6t_LOG.c | 6 ++---- + 4 files changed, 8 insertions(+), 18 deletions(-) + +--- a/net/bridge/netfilter/ebt_log.c ++++ b/net/bridge/netfilter/ebt_log.c +@@ -196,10 +196,8 @@ static int __init ebt_log_init(void) + ret = ebt_register_watcher(&log); + if (ret < 0) + return ret; +- ret = nf_log_register(PF_BRIDGE, &ebt_log_logger); +- if (ret < 0 && ret != -EEXIST) +- ebt_unregister_watcher(&log); +- return ret; ++ nf_log_register(PF_BRIDGE, &ebt_log_logger); ++ return 0; + } + + static void __exit ebt_log_fini(void) +--- a/net/bridge/netfilter/ebt_ulog.c ++++ b/net/bridge/netfilter/ebt_ulog.c +@@ -308,12 +308,8 @@ static int __init ebt_ulog_init(void) + else if ((ret = ebt_register_watcher(&ulog))) + sock_release(ebtulognl->sk_socket); + +- if (nf_log_register(PF_BRIDGE, &ebt_ulog_logger) < 0) { +- printk(KERN_WARNING "ebt_ulog: not logging via ulog " +- "since somebody else already registered for PF_BRIDGE\n"); +- /* we cannot make module load fail here, since otherwise +- * ebtables userspace would abort */ +- } ++ if (ret == 0) ++ nf_log_register(PF_BRIDGE, &ebt_ulog_logger); + + return ret; + } +--- a/net/ipv4/netfilter/ipt_LOG.c ++++ b/net/ipv4/netfilter/ipt_LOG.c +@@ -477,10 +477,8 @@ static int __init ipt_log_init(void) + ret = xt_register_target(&ipt_log_reg); + if (ret < 0) + return ret; +- ret = nf_log_register(PF_INET, &ipt_log_logger); +- if (ret < 0 && ret != -EEXIST) +- xt_unregister_target(&ipt_log_reg); +- return ret; ++ nf_log_register(PF_INET, &ipt_log_logger); ++ return 0; + } + + static void __exit ipt_log_fini(void) +--- a/net/ipv6/netfilter/ip6t_LOG.c ++++ b/net/ipv6/netfilter/ip6t_LOG.c +@@ -490,10 +490,8 @@ static int __init ip6t_log_init(void) + ret = xt_register_target(&ip6t_log_reg); + if (ret < 0) + return ret; +- ret = nf_log_register(PF_INET6, &ip6t_logger); +- if (ret < 0 && ret != -EEXIST) +- xt_unregister_target(&ip6t_log_reg); +- return ret; ++ nf_log_register(PF_INET6, &ip6t_logger); ++ return 0; + } + + static void __exit ip6t_log_fini(void) diff --git a/queue-2.6.22/series b/queue-2.6.22/series index 45067a1175d..d8a94c5d8e7 100644 --- a/queue-2.6.22/series +++ b/queue-2.6.22/series @@ -78,3 +78,4 @@ keep-rfcomm_dev-on-the-list-until-it-is-freed.patch nf_conntrack-don-t-track-locally-generated-special-icmp-error.patch proc-net-anycast6-unbalanced-inet6_dev-refcnt.patch sysfs-release-mutex-when-kmalloc-failed-in-sysfs_open_file.patch +netfilter-fix-logging-regression.patch -- 2.47.3