X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=arch%2Fx86%2Finclude%2Fasm%2Fuaccess.h;h=a0ae610b9280183fc1ca42ddd3fcc45333b433c5;hb=1eccfa090eaea22558570054bbdc147817e1df5e;hp=52f230094c51a51465547f9171571430d8f800c1;hpb=1bd4403d86a1c06cb6cc9ac87664a0c9d3413d51;p=deliverable%2Flinux.git diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h index 52f230094c51..a0ae610b9280 100644 --- a/arch/x86/include/asm/uaccess.h +++ b/arch/x86/include/asm/uaccess.h @@ -761,9 +761,10 @@ copy_from_user(void *to, const void __user *from, unsigned long n) * case, and do only runtime checking for non-constant sizes. */ - if (likely(sz < 0 || sz >= n)) + if (likely(sz < 0 || sz >= n)) { + check_object_size(to, n, false); n = _copy_from_user(to, from, n); - else if(__builtin_constant_p(n)) + } else if (__builtin_constant_p(n)) copy_from_user_overflow(); else __copy_from_user_overflow(sz, n); @@ -781,9 +782,10 @@ copy_to_user(void __user *to, const void *from, unsigned long n) might_fault(); /* See the comment in copy_from_user() above. */ - if (likely(sz < 0 || sz >= n)) + if (likely(sz < 0 || sz >= n)) { + check_object_size(from, n, true); n = _copy_to_user(to, from, n); - else if(__builtin_constant_p(n)) + } else if (__builtin_constant_p(n)) copy_to_user_overflow(); else __copy_to_user_overflow(sz, n);