2003-08-11 16:14:10

by Dave Jones

[permalink] [raw]
Subject: [PATCH] missing copy_from_user check in munich driver

diff -urpN --exclude-from=/home/davej/.exclude bk-linus/drivers/net/wan/comx-hw-munich.c linux-2.5/drivers/net/wan/comx-hw-munich.c
--- bk-linus/drivers/net/wan/comx-hw-munich.c 2003-05-23 12:11:56.000000000 +0100
+++ linux-2.5/drivers/net/wan/comx-hw-munich.c 2003-07-13 06:04:34.000000000 +0100
@@ -2414,7 +2414,10 @@ static int munich_write_proc(struct file
return -ENOMEM;

/* Copy user data and cut trailing \n */
- copy_from_user(page, buffer, count = min(count, PAGE_SIZE));
+ if (copy_from_user(page, buffer, count = min(count, PAGE_SIZE))) {
+ free_page((unsigned long)page);
+ return -EFAULT;
+ }
if (*(page + count - 1) == '\n')
*(page + count - 1) = 0;
*(page + PAGE_SIZE - 1) = 0;