2003-08-11 16:01:37

by Dave Jones

[permalink] [raw]
Subject: [PATCH] Missing copy_from_user check in comx driver

diff -urpN --exclude-from=/home/davej/.exclude bk-linus/drivers/net/wan/comx-hw-locomx.c linux-2.5/drivers/net/wan/comx-hw-locomx.c
--- bk-linus/drivers/net/wan/comx-hw-locomx.c 2003-05-20 18:41:21.000000000 +0100
+++ linux-2.5/drivers/net/wan/comx-hw-locomx.c 2003-07-13 06:04:34.000000000 +0100
@@ -339,7 +339,10 @@ static int locomx_write_proc(struct file
return -ENOMEM;
}

- copy_from_user(page, buffer, count = min_t(unsigned long, count, PAGE_SIZE));
+ if (copy_from_user(page, buffer, count = min_t(unsigned long, count, PAGE_SIZE))) {
+ free_page((unsigned long)page);
+ return -EBADF;
+ }
if (*(page + count - 1) == '\n') {
*(page + count - 1) = 0;
}