x86-64: Fix the failure case in copy_user_handle_tail()
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> Cc: <stable@vger.kernel.org>
This commit is contained in:
parent
a937536b86
commit
66db3feb48
@ -74,10 +74,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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user