aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/netfilter/nf_log_ipv4.c
diff options
context:
space:
mode:
authorMarcelo Leitner <mleitner@redhat.com>2014-10-29 10:51:13 -0200
committerPablo Neira Ayuso <pablo@netfilter.org>2014-10-30 16:41:48 +0100
commit8ac2bde2a4a05c38e2bd733bea94507cb1461e06 (patch)
tree2628cb85dd882e24e0b4dd8a76d5a4ee5330aaf5 /net/ipv4/netfilter/nf_log_ipv4.c
parentnetfilter: nf_log: Introduce nft_log_dereference() macro (diff)
downloadlinux-dev-8ac2bde2a4a05c38e2bd733bea94507cb1461e06.tar.xz
linux-dev-8ac2bde2a4a05c38e2bd733bea94507cb1461e06.zip
netfilter: log: protect nf_log_register against double registering
Currently, despite the comment right before the function, nf_log_register allows registering two loggers on with the same type and end up overwriting the previous register. Not a real issue today as current tree doesn't have two loggers for the same type but it's better to get this protected. Also make sure that all of its callers do error checking. Signed-off-by: Marcelo Ricardo Leitner <mleitner@redhat.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net/ipv4/netfilter/nf_log_ipv4.c')
-rw-r--r--net/ipv4/netfilter/nf_log_ipv4.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/net/ipv4/netfilter/nf_log_ipv4.c b/net/ipv4/netfilter/nf_log_ipv4.c
index 078bdca1b607..75101980eeee 100644
--- a/net/ipv4/netfilter/nf_log_ipv4.c
+++ b/net/ipv4/netfilter/nf_log_ipv4.c
@@ -5,6 +5,7 @@
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/module.h>
#include <linux/spinlock.h>
@@ -366,8 +367,17 @@ static int __init nf_log_ipv4_init(void)
if (ret < 0)
return ret;
- nf_log_register(NFPROTO_IPV4, &nf_ip_logger);
+ ret = nf_log_register(NFPROTO_IPV4, &nf_ip_logger);
+ if (ret < 0) {
+ pr_err("failed to register logger\n");
+ goto err1;
+ }
+
return 0;
+
+err1:
+ unregister_pernet_subsys(&nf_log_ipv4_net_ops);
+ return ret;
}
static void __exit nf_log_ipv4_exit(void)