]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
RDS: check access on pages before doing copy_to_user
authorChris Mason <chris.mason@oracle.com>
Fri, 3 Feb 2012 16:07:40 +0000 (11:07 -0500)
committerMukesh Kacker <mukesh.kacker@oracle.com>
Tue, 7 Jul 2015 23:41:27 +0000 (16:41 -0700)
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Signed-off-by: Bang Nguyen <bang.nguyen@oracle.com>
net/rds/page.c

index b94b8e119d4b202300bbe246a3573551f885e327..fe5adbb5aa4172a1842fda952447d2406f4f6789 100644 (file)
@@ -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