|
@@ -664,8 +664,11 @@ static ssize_t clusterip_proc_write(struct file *file, const char __user *input,
|
|
|
char buffer[PROC_WRITELEN+1];
|
|
|
unsigned long nodenum;
|
|
|
|
|
|
- if (copy_from_user(buffer, input, PROC_WRITELEN))
|
|
|
+ if (size > PROC_WRITELEN)
|
|
|
+ return -EIO;
|
|
|
+ if (copy_from_user(buffer, input, size))
|
|
|
return -EFAULT;
|
|
|
+ buffer[size] = 0;
|
|
|
|
|
|
if (*buffer == '+') {
|
|
|
nodenum = simple_strtoul(buffer+1, NULL, 10);
|