diff mbox series

mm: Return -EFAULT if copy_to_user() fails

Message ID 1614601963-25812-1-git-send-email-wangqing@vivo.com (mailing list archive)
State New, archived
Headers show
Series mm: Return -EFAULT if copy_to_user() fails | expand

Commit Message

王擎 March 1, 2021, 12:32 p.m. UTC
The copy_to_user() function returns the number of bytes remaining to be
copied, but we want to return -EFAULT if the copy doesn't complete.

Signed-off-by: Wang Qing <wangqing@vivo.com>
---
 mm/mempolicy.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/mm/mempolicy.c b/mm/mempolicy.c
index ab51132..a116e56
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@ -1667,7 +1667,7 @@  COMPAT_SYSCALL_DEFINE5(get_mempolicy, int __user *, policy,
 	if (!err && nmask) {
 		unsigned long copy_size;
 		copy_size = min_t(unsigned long, sizeof(bm), alloc_size);
-		err = copy_from_user(bm, nm, copy_size);
+		err = copy_from_user(bm, nm, copy_size) ? -EFAULT : 0;
 		/* ensure entire bitmap is zeroed */
 		err |= clear_user(nmask, ALIGN(maxnode-1, 8) / 8);
 		err |= compat_put_bitmap(nmask, bm, nr_bits);