]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - arch/alpha/lib/csum_partial_copy.c
kernel-wide: fix missing validations on __get/__put/__copy_to/__copy_from_user()
[mirror_ubuntu-artful-kernel.git] / arch / alpha / lib / csum_partial_copy.c
index 40736da9bea87aef7d5e43e4af8672d46a58ef9e..ffb19b7da999c67722d5690dcfcd6ef0d74123f8 100644 (file)
@@ -338,6 +338,11 @@ csum_partial_copy_from_user(const void __user *src, void *dst, int len,
        unsigned long doff = 7 & (unsigned long) dst;
 
        if (len) {
+               if (!access_ok(VERIFY_READ, src, len)) {
+                       *errp = -EFAULT;
+                       memset(dst, 0, len);
+                       return sum;
+               }
                if (!doff) {
                        if (!soff)
                                checksum = csum_partial_cfu_aligned(