[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1327172558-19180-1-git-send-email-szymon@janc.net.pl>
Date: Sat, 21 Jan 2012 20:02:37 +0100
From: Szymon Janc <szymon@...c.net.pl>
To: Alexander Viro <viro@...iv.linux.org.uk>
Cc: linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org,
Szymon Janc <szymon@...c.net.pl>
Subject: [PATCH] binfmt_misc: Fix compilation error in parse_command()
This fix compilation error with CONFIG_DEBUG_STRICT_USER_COPY_CHECKS
enabled. It looks like gcc 4.6.2 is not able to prove that count
is within sizeof(s) bounds (although it is).
CC [M] fs/binfmt_misc.o
In file included from arch/x86/include/asm/uaccess.h:573:0,
from include/linux/uaccess.h:5,
from include/linux/highmem.h:7,
from include/linux/pagemap.h:10,
from fs/binfmt_misc.c:26:
In function ‘copy_from_user’,
inlined from ‘parse_command.part.1’ at fs/binfmt_misc.c:421:20:
arch/x86/include/asm/uaccess_32.h:211:26: error: call to ‘copy_from_user_overflow’ declared with attribute error: copy_from_user() buffer size is not provably correct
make[1]: *** [fs/binfmt_misc.o] Error 1
make: *** [fs] Error 2
Signed-off-by: Szymon Janc <szymon@...c.net.pl>
---
fs/binfmt_misc.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/fs/binfmt_misc.c b/fs/binfmt_misc.c
index a9198df..4879d35 100644
--- a/fs/binfmt_misc.c
+++ b/fs/binfmt_misc.c
@@ -418,7 +418,7 @@ static int parse_command(const char __user *buffer, size_t count)
return 0;
if (count > 3)
return -EINVAL;
- if (copy_from_user(s, buffer, count))
+ if (copy_from_user(s, buffer, min(count, sizeof(s))))
return -EFAULT;
if (s[count-1] == '\n')
count--;
--
1.7.8.3
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists