projects
/
wrapfs-3.14.y.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
b8f443e
)
x86-64: Fix the failure case in copy_user_handle_tail()
author
CQ Tang
<cq.tang@intel.com>
Mon, 18 Mar 2013 15:02:21 +0000
(11:02 -0400)
committer
Ben Hutchings
<ben@decadent.org.uk>
Wed, 27 Mar 2013 02:41:17 +0000
(
02:41
+0000)
commit
66db3feb486c01349f767b98ebb10b0c3d2d021b
upstream.
The increment of "to" in copy_user_handle_tail() will have incremented
before a failure has been noted. This causes us to skip a byte in the
failure case.
Only do the increment when assured there is no failure.
Signed-off-by: CQ Tang <cq.tang@intel.com>
Link:
http://lkml.kernel.org/r/20130318150221.8439.993.stgit@phlsvslse11.ph.intel.com
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
arch/x86/lib/usercopy_64.c
patch
|
blob
|
history
diff --git
a/arch/x86/lib/usercopy_64.c
b/arch/x86/lib/usercopy_64.c
index b7c2849ffb66015ed114a5ab2015956aecd69d7b..554b7b528f02adb7fc554972b064a7a90e3daa65 100644
(file)
--- a/
arch/x86/lib/usercopy_64.c
+++ b/
arch/x86/lib/usercopy_64.c
@@
-169,10
+169,10
@@
copy_user_handle_tail(char *to, char *from, unsigned len, unsigned zerorest)
char c;
unsigned zero_len;
- for (; len; --len) {
+ for (; len; --len
, to++
) {
if (__get_user_nocheck(c, from++, sizeof(char)))
break;
- if (__put_user_nocheck(c, to
++
, sizeof(char)))
+ if (__put_user_nocheck(c, to, sizeof(char)))
break;
}