/dev/mem: Avoid overwriting "err" in read_mem()
PATCH 1/1 /dev/mem: Avoid overwriting "err" in read_mem()
Successes in probe_kernel_read() would mask failures in copy_to_user() during read_mem().
Reported-by Brad Spengler <[email protected]>
Fixes 22ec1a2aea73 ("/dev/mem: Add bounce buffer for copy-out")
Signed-off-by Kees Cook <[email protected]>
--- drivers/char/mem.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
drivers/char/mem.c +3 -3
@@ -137,7 +137,7 @@ static ssize_t read_mem(struct file *file, char __user *buf,while (count >0 ) {unsigned long remaining; -int allowed; +int allowed, probe; sz =size_inside_page (p, count);
@@ -160,9 +160,9 @@ static ssize_t read_mem(struct file *file, char __user *buf,if (!ptr) goto failed; - err =probe_kernel_read (bounce, ptr, sz); + probe =probe_kernel_read (bounce, ptr, sz);unxlate_dev_mem_ptr (p, ptr); -if (err) +if (probe) goto failed; remaining =copy_to_user (buf, bounce, sz);
Signature · 6 lines
2.7.4 -- Kees Cook Pixel Security