projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix minor infoleak in get_user_ex()
[cascardo/linux.git]
/
arch
/
x86
/
include
/
asm
/
uaccess.h
diff --git
a/arch/x86/include/asm/uaccess.h
b/arch/x86/include/asm/uaccess.h
index
e3af86f
..
2131c4c
100644
(file)
--- a/
arch/x86/include/asm/uaccess.h
+++ b/
arch/x86/include/asm/uaccess.h
@@
-433,7
+433,11
@@
do { \
#define __get_user_asm_ex(x, addr, itype, rtype, ltype) \
asm volatile("1: mov"itype" %1,%"rtype"0\n" \
"2:\n" \
#define __get_user_asm_ex(x, addr, itype, rtype, ltype) \
asm volatile("1: mov"itype" %1,%"rtype"0\n" \
"2:\n" \
- _ASM_EXTABLE_EX(1b, 2b) \
+ ".section .fixup,\"ax\"\n" \
+ "3:xor"itype" %"rtype"0,%"rtype"0\n" \
+ " jmp 2b\n" \
+ ".previous\n" \
+ _ASM_EXTABLE_EX(1b, 3b) \
: ltype(x) : "m" (__m(addr)))
#define __put_user_nocheck(x, ptr, size) \
: ltype(x) : "m" (__m(addr)))
#define __put_user_nocheck(x, ptr, size) \