aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCliff Wickman <cpw@sgi.com>2008-06-19 11:16:24 -0500
committerIngo Molnar <mingo@elte.hu>2008-07-08 12:23:30 +0200
commitcef53278682eb2604cbd99de64cdb59a8b35235a (patch)
treeb57124c7b03d7ac92ada52d5a783c4e0d8edcc8d
parentab9c0bb8a8c1d71dd303abdaa61ec496128e2fbe (diff)
x86, SGI UV: TLB shootdown using broadcast assist unit, v6
v6: 6/19 close the security hole in uv_ptc_proc_write()) > Found a potential security hole while doing that: > static ssize_t uv_ptc_proc_write(struct file *file, const char __user *user, > size_t count, loff_t *data) > if (copy_from_user(optstr, user, count)) > return -EFAULT; > > is count guaranteed to never be larger than 64? is fixed below. It adds tlb_uv.o to the Makefile. Signed-off-by: Cliff Wickman <cpw@sgi.com> Cc: mingo@elte.hu Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r--arch/x86/kernel/tlb_uv.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/kernel/tlb_uv.c b/arch/x86/kernel/tlb_uv.c
index b362913f019..c503b7f0448 100644
--- a/arch/x86/kernel/tlb_uv.c
+++ b/arch/x86/kernel/tlb_uv.c
@@ -492,6 +492,8 @@ static ssize_t uv_ptc_proc_write(struct file *file, const char __user *user,
long newmode;
char optstr[64];
+ if (count > 64)
+ return -EINVAL;
if (copy_from_user(optstr, user, count))
return -EFAULT;
optstr[count - 1] = '\0';