drivers/scsi/scsi_proc.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/scsi/scsi_proc.c b/drivers/scsi/scsi_proc.c index 4a6eb1741be0..da66d9260232 100644 --- a/drivers/scsi/scsi_proc.c +++ b/drivers/scsi/scsi_proc.c @@ -409,7 +409,7 @@ static ssize_t proc_scsi_write(struct file *file, const char __user *buf, char *buffer, *p; int err; - if (!buf || length > PAGE_SIZE) + if (!buf || length > PAGE_SIZE-8) return -EINVAL; buffer = (char *)__get_free_page(GFP_KERNEL); @@ -421,10 +421,7 @@ static ssize_t proc_scsi_write(struct file *file, const char __user *buf, goto out; err = -EINVAL; - if (length < PAGE_SIZE) - buffer[length] = '\0'; - else if (buffer[PAGE_SIZE-1]) - goto out; + memset(buffer + length, 0, 8); /* * Usage: echo "scsi add-single-device 0 1 2 3" >/proc/scsi/scsi