* linux-next: build warnings (buffer size is not provably correct)
@ 2009-10-08 4:47 Stephen Rothwell
2009-10-08 13:42 ` Arjan van de Ven
0 siblings, 1 reply; 2+ messages in thread
From: Stephen Rothwell @ 2009-10-08 4:47 UTC (permalink / raw)
To: Thomas Gleixner, Ingo Molnar, H. Peter Anvin, Peter Zijlstra
Cc: linux-next, linux-kernel, Arjan van de Ven, James Morris,
David Howells, Wim Van Sebroeck, Al Viro
[-- Attachment #1: Type: text/plain, Size: 1281 bytes --]
Hi all,
Today's linux-next build (i386 defconfig) produced these warnings:
In file included from arch/x86/include/asm/uaccess.h:572,
from kernel/capability.c:18:
arch/x86/include/asm/uaccess_32.h: In function 'sys_capset':
arch/x86/include/asm/uaccess_32.h:211: warning: call to 'copy_from_user_overflow' declared with attribute warning: copy_from_user() buffer size is not provably correct
In file included from arch/x86/include/asm/uaccess.h:572,
from include/linux/poll.h:14,
from include/linux/rtc.h:115,
from include/linux/mc146818rtc.h:16,
from drivers/char/nvram.c:108:
arch/x86/include/asm/uaccess_32.h: In function 'nvram_write':
arch/x86/include/asm/uaccess_32.h:211: warning: call to 'copy_from_user_overflow' declared with attribute warning: copy_from_user() buffer size is not provably correct
Brought to light by commit 4a3127693001c61a21d1ce680db6340623f52e93
("x86: Turn the copy_from_user check into an (optional) compile time
warning") from the tip tree.
Clearly these are not problems with the tip tree, but someone may want to
look at them.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: linux-next: build warnings (buffer size is not provably correct)
2009-10-08 4:47 linux-next: build warnings (buffer size is not provably correct) Stephen Rothwell
@ 2009-10-08 13:42 ` Arjan van de Ven
0 siblings, 0 replies; 2+ messages in thread
From: Arjan van de Ven @ 2009-10-08 13:42 UTC (permalink / raw)
To: Stephen Rothwell
Cc: Thomas Gleixner, Ingo Molnar, H. Peter Anvin, Peter Zijlstra,
linux-next, linux-kernel, James Morris, David Howells,
Wim Van Sebroeck, Al Viro, akpm
On Thu, 8 Oct 2009 15:47:10 +1100
Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> Hi all,
>
> Today's linux-next build (i386 defconfig) produced these warnings:
>
> In file included from arch/x86/include/asm/uaccess.h:572,
> from kernel/capability.c:18:
> arch/x86/include/asm/uaccess_32.h: In function 'sys_capset':
the following needs to go somewhere... Andrew ?
From: Arjan van de Ven <arjan@linux.intel.com>
Subject: [PATCH 7/9] Simplify bound checks in capabilities for copy_from_user
CC: James Morris <jmorris@namei.org>
The capabilities syscall has a copy_from_user() call where gcc currently
cannot prove to itself that the copy is always within bounds.
This patch adds a very explicity bound check to prove to gcc that
this copy_from_user cannot overflow its destination buffer.
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Acked-by: James Morris <jmorris@namei.org>
diff --git a/kernel/capability.c b/kernel/capability.c
index 4e17041..204f11f 100644
--- a/kernel/capability.c
+++ b/kernel/capability.c
@@ -238,7 +241,7 @@ SYSCALL_DEFINE2(capget, cap_user_header_t, header, cap_user_data_t, dataptr)
SYSCALL_DEFINE2(capset, cap_user_header_t, header, const cap_user_data_t, data)
{
struct __user_cap_data_struct kdata[_KERNEL_CAPABILITY_U32S];
- unsigned i, tocopy;
+ unsigned i, tocopy, copybytes;
kernel_cap_t inheritable, permitted, effective;
struct cred *new;
int ret;
@@ -255,8 +258,11 @@ SYSCALL_DEFINE2(capset, cap_user_header_t, header, const cap_user_data_t, data)
if (pid != 0 && pid != task_pid_vnr(current))
return -EPERM;
- if (copy_from_user(&kdata, data,
- tocopy * sizeof(struct __user_cap_data_struct)))
+ copybytes = tocopy * sizeof(struct __user_cap_data_struct);
+ if (copybytes > sizeof(kdata))
+ return -EFAULT;
+
+ if (copy_from_user(&kdata, data, copybytes))
return -EFAULT;
for (i = 0; i < tocopy; i++) {
--
Arjan van de Ven Intel Open Source Technology Centre
For development, discussion and tips for power savings,
visit http://www.lesswatts.org
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2009-10-08 13:42 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-08 4:47 linux-next: build warnings (buffer size is not provably correct) Stephen Rothwell
2009-10-08 13:42 ` Arjan van de Ven
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).