From: Ralf Baechle Date: Tue, 18 Nov 2014 17:47:13 +0000 (+0100) Subject: MIPS: Zero variable read by get_user / __get_user in case of an error. X-Git-Tag: v3.16.43~6 X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4c125b48deacb51dbe5618ba5c1cfec9bcc41e6e;p=linux MIPS: Zero variable read by get_user / __get_user in case of an error. commit 640465bda58c7078725201be7430c31a349121e9 upstream. This wasn't happening in all cases. Signed-off-by: Ralf Baechle Signed-off-by: Ben Hutchings Cc: Arnd Bergmann --- diff --git a/arch/mips/include/asm/uaccess.h b/arch/mips/include/asm/uaccess.h index cb4a3ee31983..a752de97840f 100644 --- a/arch/mips/include/asm/uaccess.h +++ b/arch/mips/include/asm/uaccess.h @@ -302,7 +302,8 @@ do { \ __get_kernel_common((x), size, __gu_ptr); \ else \ __get_user_common((x), size, __gu_ptr); \ - } \ + } else \ + (x) = 0; \ \ __gu_err; \ }) @@ -317,6 +318,7 @@ do { \ " .insn \n" \ " .section .fixup,\"ax\" \n" \ "3: li %0, %4 \n" \ + " move %1, $0 \n" \ " j 2b \n" \ " .previous \n" \ " .section __ex_table,\"a\" \n" \ @@ -631,6 +633,7 @@ do { \ " .insn \n" \ " .section .fixup,\"ax\" \n" \ "3: li %0, %4 \n" \ + " move %1, $0 \n" \ " j 2b \n" \ " .previous \n" \ " .section __ex_table,\"a\" \n" \