aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCliff Wickman <cpw@sgi.com>2008-06-24 13:20:06 -0400
committerTony Luck <tony.luck@intel.com>2008-06-24 13:20:06 -0400
commit8097110d179b874d91c6495330c2b96c991e8c6e (patch)
tree8ca93d3c7758953f468e5b25708d68dfd732b307
parent2826f8c0f4c97b7db33e2a680f184d828eb7a785 (diff)
[IA64] Handle count==0 in sn2_ptc_proc_write()
The fix applied in e0c6d97c65e0784aade7e97b9411f245a6c543e7 "security hole in sn2_ptc_proc_write" didn't take into account the case where count==0 (which results in a buffer underrun when adding the trailing '\0'). Thanks to Andi Kleen for pointing this out. Signed-off-by: Cliff Wickman <cpw@sgi.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
-rw-r--r--arch/ia64/sn/kernel/sn2/sn2_smp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/ia64/sn/kernel/sn2/sn2_smp.c b/arch/ia64/sn/kernel/sn2/sn2_smp.c
index 6dd886c5d860..e585f9a2afb9 100644
--- a/arch/ia64/sn/kernel/sn2/sn2_smp.c
+++ b/arch/ia64/sn/kernel/sn2/sn2_smp.c
@@ -512,7 +512,7 @@ static ssize_t sn2_ptc_proc_write(struct file *file, const char __user *user, si
512 int cpu; 512 int cpu;
513 char optstr[64]; 513 char optstr[64];
514 514
515 if (count > sizeof(optstr)) 515 if (count == 0 || count > sizeof(optstr))
516 return -EINVAL; 516 return -EINVAL;
517 if (copy_from_user(optstr, user, count)) 517 if (copy_from_user(optstr, user, count))
518 return -EFAULT; 518 return -EFAULT;