netfilter-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Patrick McHardy <kaber@trash.net>
To: stable@kernel.org
Cc: netdev@vger.kernel.org, Patrick McHardy <kaber@trash.net>,
	netfilter-devel@vger.kernel.org
Subject: netfilter -stable 04/08: nf_log: fix direct userspace memory access in proc handler
Date: Thu, 23 Jul 2009 16:15:29 +0200 (MEST)	[thread overview]
Message-ID: <20090723141528.19029.49493.sendpatchset@x2.localnet> (raw)
In-Reply-To: <20090723141523.19029.89290.sendpatchset@x2.localnet>

commit b8fe73c51f6edb0efe547765bf47fad382d9fc98
Author: Patrick McHardy <kaber@trash.net>
Date:   Fri Jul 3 10:34:28 2009 +0200

    netfilter: nf_log: fix direct userspace memory access in proc handler
    
    Upstream commit 24955619.
    
    Signed-off-by: Patrick McHardy <kaber@trash.net>

diff --git a/net/netfilter/nf_log.c b/net/netfilter/nf_log.c
index 2fefe14..4e62030 100644
--- a/net/netfilter/nf_log.c
+++ b/net/netfilter/nf_log.c
@@ -47,7 +47,6 @@ int nf_log_register(u_int8_t pf, struct nf_logger *logger)
 	mutex_lock(&nf_log_mutex);
 
 	if (pf == NFPROTO_UNSPEC) {
-		int i;
 		for (i = NFPROTO_UNSPEC; i < NFPROTO_NUMPROTO; i++)
 			list_add_tail(&(logger->list[i]), &(nf_loggers_l[i]));
 	} else {
@@ -216,7 +215,7 @@ static const struct file_operations nflog_file_ops = {
 #endif /* PROC_FS */
 
 #ifdef CONFIG_SYSCTL
-struct ctl_path nf_log_sysctl_path[] = {
+static struct ctl_path nf_log_sysctl_path[] = {
 	{ .procname = "net", .ctl_name = CTL_NET, },
 	{ .procname = "netfilter", .ctl_name = NET_NETFILTER, },
 	{ .procname = "nf_log", .ctl_name = CTL_UNNUMBERED, },
@@ -228,19 +227,26 @@ static struct ctl_table nf_log_sysctl_table[NFPROTO_NUMPROTO+1];
 static struct ctl_table_header *nf_log_dir_header;
 
 static int nf_log_proc_dostring(ctl_table *table, int write, struct file *filp,
-			 void *buffer, size_t *lenp, loff_t *ppos)
+			 void __user *buffer, size_t *lenp, loff_t *ppos)
 {
 	const struct nf_logger *logger;
+	char buf[NFLOGGER_NAME_LEN];
+	size_t size = *lenp;
 	int r = 0;
 	int tindex = (unsigned long)table->extra1;
 
 	if (write) {
-		if (!strcmp(buffer, "NONE")) {
+		if (size > sizeof(buf))
+			size = sizeof(buf);
+		if (copy_from_user(buf, buffer, size))
+			return -EFAULT;
+
+		if (!strcmp(buf, "NONE")) {
 			nf_log_unbind_pf(tindex);
 			return 0;
 		}
 		mutex_lock(&nf_log_mutex);
-		logger = __find_logger(tindex, buffer);
+		logger = __find_logger(tindex, buf);
 		if (logger == NULL) {
 			mutex_unlock(&nf_log_mutex);
 			return -ENOENT;

  parent reply	other threads:[~2009-07-23 14:15 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-23 14:15 netfilter -stable 00/08: netfilter -stable fixes Patrick McHardy
2009-07-23 14:15 ` netfilter -stable 01/08: nf_log: fix sleeping function called from invalid context Patrick McHardy
2009-07-23 14:15 ` netfilter -stable 02/08: nf_conntrack: fix confirmation race condition Patrick McHardy
2009-07-23 14:15 ` netfilter -stable 03/08: nf_conntrack: fix conntrack lookup race Patrick McHardy
2009-07-23 14:15 ` Patrick McHardy [this message]
2009-07-23 14:15 ` netfilter -stable 05/08: xt_quota: fix incomplete initialization Patrick McHardy
2009-07-23 14:15 ` netfilter -stable 06/08: xt_rateest: fix comparison with self Patrick McHardy
2009-07-23 14:15 ` netfilter -stable 07/08: tcp conntrack: fix unacknowledged data detection with NAT Patrick McHardy
2009-07-23 14:15 ` netfilter -stable 08/08: nf_conntrack: nf_conntrack_alloc() fixes Patrick McHardy
2009-07-27 17:55   ` Paul E. McKenney
2009-07-28 19:04 ` [stable] netfilter -stable 00/08: netfilter -stable fixes Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090723141528.19029.49493.sendpatchset@x2.localnet \
    --to=kaber@trash.net \
    --cc=netdev@vger.kernel.org \
    --cc=netfilter-devel@vger.kernel.org \
    --cc=stable@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).