2008-11-14 02:06:44

by Hiroshi Shimamoto

[permalink] [raw]
Subject: [PATCH] x86: uaccess_64: fix return value in __copy_from_user()

From: Hiroshi Shimamoto <[email protected]>

__copy_from_user() will return invalid value 16 when it fails to
access user space and the size is 10.

Signed-off-by: Hiroshi Shimamoto <[email protected]>
---
arch/x86/include/asm/uaccess_64.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/x86/include/asm/uaccess_64.h b/arch/x86/include/asm/uaccess_64.h
index 543ba88..84210c4 100644
--- a/arch/x86/include/asm/uaccess_64.h
+++ b/arch/x86/include/asm/uaccess_64.h
@@ -48,7 +48,7 @@ int __copy_from_user(void *dst, const void __user *src, unsigned size)
return ret;
case 10:
__get_user_asm(*(u64 *)dst, (u64 __user *)src,
- ret, "q", "", "=r", 16);
+ ret, "q", "", "=r", 10);
if (unlikely(ret))
return ret;
__get_user_asm(*(u16 *)(8 + (char *)dst),
--
1.5.6


2008-11-18 21:29:46

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH] x86: uaccess_64: fix return value in __copy_from_user()


* Hiroshi Shimamoto <[email protected]> wrote:

> From: Hiroshi Shimamoto <[email protected]>
>
> __copy_from_user() will return invalid value 16 when it fails to
> access user space and the size is 10.
>
> Signed-off-by: Hiroshi Shimamoto <[email protected]>
> ---
> arch/x86/include/asm/uaccess_64.h | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)

applied to tip/x86/urgent, thanks!

Ingo