From: Chris Mason Date: Fri, 3 Feb 2012 16:07:40 +0000 (-0500) Subject: RDS: check access on pages before doing copy_to_user X-Git-Tag: v4.1.12-92~319^2^2~2^2~61 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=818291d8116edfde5d436f4e14f8a51f80e7ece6;p=users%2Fjedix%2Flinux-maple.git RDS: check access on pages before doing copy_to_user Signed-off-by: Chris Mason Signed-off-by: Bang Nguyen --- diff --git a/net/rds/page.c b/net/rds/page.c index b94b8e119d4b2..fe5adbb5aa417 100644 --- a/net/rds/page.c +++ b/net/rds/page.c @@ -56,6 +56,14 @@ int rds_page_copy_user(struct page *page, unsigned long offset, unsigned long ret; void *addr; + if (to_user) + ret = access_ok(VERIFY_WRITE, ptr, bytes); + else + ret = access_ok(VERIFY_READ, ptr, bytes); + + if (!ret) + return -EFAULT; + if (to_user) rds_stats_add(s_copy_to_user, bytes); else