]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
another 2.6.22 patch
authorGreg Kroah-Hartman <gregkh@suse.de>
Tue, 7 Aug 2007 18:43:55 +0000 (11:43 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 7 Aug 2007 18:43:55 +0000 (11:43 -0700)
queue-2.6.22/netfilter-fix-logging-regression.patch [new file with mode: 0644]
queue-2.6.22/series

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 (file)
index 0000000..4667e36
--- /dev/null
@@ -0,0 +1,91 @@
+From stable-bounces@linux.kernel.org Wed Jul 25 08:01:19 2007
+From: Patrick McHardy <kaber@trash.net>
+Date: Wed, 25 Jul 2007 17:00:15 +0200
+Subject: Netfilter: Fix logging regression
+To: stable@kernel.org
+Cc: Netfilter Development Mailinglist <netfilter-devel@lists.netfilter.org>, "David S. Miller" <davem@davemloft.net>
+Message-ID: <46A7657F.20906@trash.net>
+
+From: Patrick McHardy <kaber@trash.net>
+
+[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: <t.artem@mailcity.com>
+Upstream-commit: 7e2acc7e
+
+Signed-off-by: Patrick McHardy <kaber@trash.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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)
index 45067a1175d6905cf6112856e87a64f08d7a61c2..d8a94c5d8e7484f43927bbaee9bdda065a638833 100644 (file)
@@ -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