diff options
-rw-r--r-- | 4.7.10/0000_README | 2 | ||||
-rw-r--r-- | 4.7.10/4420_grsecurity-3.1-4.7.10-201611011946.patch (renamed from 4.7.10/4420_grsecurity-3.1-4.7.10-201610262029.patch) | 161 |
2 files changed, 151 insertions, 12 deletions
diff --git a/4.7.10/0000_README b/4.7.10/0000_README index 5c79278..c596497 100644 --- a/4.7.10/0000_README +++ b/4.7.10/0000_README @@ -14,7 +14,7 @@ Patch: 1009_linux-4.7.10.patch From: http://www.kernel.org Desc: Linux 4.7.10 -Patch: 4420_grsecurity-3.1-4.7.10-201610262029.patch +Patch: 4420_grsecurity-3.1-4.7.10-201611011946.patch From: http://www.grsecurity.net Desc: hardened-sources base patch from upstream grsecurity diff --git a/4.7.10/4420_grsecurity-3.1-4.7.10-201610262029.patch b/4.7.10/4420_grsecurity-3.1-4.7.10-201611011946.patch index 2148028..15bb765 100644 --- a/4.7.10/4420_grsecurity-3.1-4.7.10-201610262029.patch +++ b/4.7.10/4420_grsecurity-3.1-4.7.10-201611011946.patch @@ -960,7 +960,7 @@ index d50430c..01cc53b 100644 # but it is being used too early to link to meaningful stack_chk logic. nossp_flags := $(call cc-option, -fno-stack-protector) diff --git a/arch/arm/include/asm/atomic.h b/arch/arm/include/asm/atomic.h -index 9e10c45..5fbb312 100644 +index 9e10c45..e4cd000 100644 --- a/arch/arm/include/asm/atomic.h +++ b/arch/arm/include/asm/atomic.h @@ -18,17 +18,41 @@ @@ -1018,7 +1018,7 @@ index 9e10c45..5fbb312 100644 + "3:\n" +#define __OVERFLOW_POST_RETURN \ + " bvc 3f\n" \ -+" mov %0, %1\n" \ ++ " mov %0, %1\n" \ + "2: " REFCOUNT_TRAP_INSN "\n"\ + "3:\n" +#define __OVERFLOW_EXTABLE \ @@ -24176,7 +24176,7 @@ index dee8a70..a2c1bda 100644 } diff --git a/arch/x86/include/asm/traps.h b/arch/x86/include/asm/traps.h -index c3496619..3f3a7dc 100644 +index c3496619..a968182 100644 --- a/arch/x86/include/asm/traps.h +++ b/arch/x86/include/asm/traps.h @@ -10,7 +10,7 @@ @@ -24188,7 +24188,15 @@ index c3496619..3f3a7dc 100644 asmlinkage void nmi(void); asmlinkage void int3(void); asmlinkage void xen_debug(void); -@@ -107,7 +107,7 @@ extern int panic_on_unrecovered_nmi; +@@ -54,6 +54,7 @@ asmlinkage void trace_page_fault(void); + #define trace_alignment_check alignment_check + #define trace_simd_coprocessor_error simd_coprocessor_error + #define trace_async_page_fault async_page_fault ++#define trace_refcount_error refcount_error + #endif + + dotraplinkage void do_divide_error(struct pt_regs *, long); +@@ -107,7 +108,7 @@ extern int panic_on_unrecovered_nmi; void math_emulate(struct math_emu_info *); #ifndef CONFIG_X86_32 @@ -24198,7 +24206,7 @@ index c3496619..3f3a7dc 100644 asmlinkage void smp_deferred_error_interrupt(void); #endif diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h -index 0328c2cc..b65e680d 100644 +index 0328c2cc..fb12bf2 100644 --- a/arch/x86/include/asm/uaccess.h +++ b/arch/x86/include/asm/uaccess.h @@ -8,6 +8,7 @@ @@ -24294,7 +24302,7 @@ index 0328c2cc..b65e680d 100644 /** * get_user: - Get a simple variable from user space. -@@ -201,13 +247,11 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL)) +@@ -201,14 +247,12 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL)) asm volatile("call __put_user_" #size : "=a" (__ret_pu) \ : "0" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx") @@ -24305,22 +24313,26 @@ index 0328c2cc..b65e680d 100644 asm volatile("\n" \ - "1: movl %%eax,0(%2)\n" \ - "2: movl %%edx,4(%2)\n" \ +- "3:" \ + "1: "__copyuser_seg"movl %%eax,0(%2)\n" \ + "2: "__copyuser_seg"movl %%edx,4(%2)\n" \ - "3:" \ ++ "3:\n" \ ".section .fixup,\"ax\"\n" \ "4: movl %3,%0\n" \ -@@ -220,8 +264,8 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL)) + " jmp 3b\n" \ +@@ -220,9 +264,9 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL)) #define __put_user_asm_ex_u64(x, addr) \ asm volatile("\n" \ - "1: movl %%eax,0(%1)\n" \ - "2: movl %%edx,4(%1)\n" \ +- "3:" \ + "1: "__copyuser_seg"movl %%eax,0(%1)\n" \ + "2: "__copyuser_seg"movl %%edx,4(%1)\n" \ - "3:" \ ++ "3:\n" \ _ASM_EXTABLE_EX(1b, 2b) \ _ASM_EXTABLE_EX(2b, 3b) \ + : : "A" (x), "r" (addr)) @@ -269,10 +313,10 @@ extern void __put_user_8(void); #define put_user(x, ptr) \ ({ \ @@ -67040,7 +67052,7 @@ index d9f1394..ba6ee91 100644 memset(buf, 0, sizeof(buf)); diff --git a/drivers/net/wireless/intersil/hostap/hostap_ioctl.c b/drivers/net/wireless/intersil/hostap/hostap_ioctl.c -index 3e5fa78..ca2e051 100644 +index 3e5fa78..6d26beb 100644 --- a/drivers/net/wireless/intersil/hostap/hostap_ioctl.c +++ b/drivers/net/wireless/intersil/hostap/hostap_ioctl.c @@ -101,8 +101,9 @@ static int prism2_get_datarates(struct net_device *dev, u8 *rates) @@ -67523,7 +67535,123 @@ index 3e5fa78..ca2e051 100644 { struct hostap_interface *iface = netdev_priv(dev); local_info_t *local = iface->local; -@@ -3943,10 +3981,10 @@ static const iw_handler prism2_handler[] = +@@ -3883,70 +3921,70 @@ const struct ethtool_ops prism2_ethtool_ops = { + + static const iw_handler prism2_handler[] = + { +- (iw_handler) NULL, /* SIOCSIWCOMMIT */ +- (iw_handler) prism2_get_name, /* SIOCGIWNAME */ +- (iw_handler) NULL, /* SIOCSIWNWID */ +- (iw_handler) NULL, /* SIOCGIWNWID */ +- (iw_handler) prism2_ioctl_siwfreq, /* SIOCSIWFREQ */ +- (iw_handler) prism2_ioctl_giwfreq, /* SIOCGIWFREQ */ +- (iw_handler) prism2_ioctl_siwmode, /* SIOCSIWMODE */ +- (iw_handler) prism2_ioctl_giwmode, /* SIOCGIWMODE */ +- (iw_handler) prism2_ioctl_siwsens, /* SIOCSIWSENS */ +- (iw_handler) prism2_ioctl_giwsens, /* SIOCGIWSENS */ +- (iw_handler) NULL /* not used */, /* SIOCSIWRANGE */ +- (iw_handler) prism2_ioctl_giwrange, /* SIOCGIWRANGE */ +- (iw_handler) NULL /* not used */, /* SIOCSIWPRIV */ +- (iw_handler) NULL /* kernel code */, /* SIOCGIWPRIV */ +- (iw_handler) NULL /* not used */, /* SIOCSIWSTATS */ +- (iw_handler) NULL /* kernel code */, /* SIOCGIWSTATS */ +- iw_handler_set_spy, /* SIOCSIWSPY */ +- iw_handler_get_spy, /* SIOCGIWSPY */ +- iw_handler_set_thrspy, /* SIOCSIWTHRSPY */ +- iw_handler_get_thrspy, /* SIOCGIWTHRSPY */ +- (iw_handler) prism2_ioctl_siwap, /* SIOCSIWAP */ +- (iw_handler) prism2_ioctl_giwap, /* SIOCGIWAP */ +- (iw_handler) prism2_ioctl_siwmlme, /* SIOCSIWMLME */ +- (iw_handler) prism2_ioctl_giwaplist, /* SIOCGIWAPLIST */ +- (iw_handler) prism2_ioctl_siwscan, /* SIOCSIWSCAN */ +- (iw_handler) prism2_ioctl_giwscan, /* SIOCGIWSCAN */ +- (iw_handler) prism2_ioctl_siwessid, /* SIOCSIWESSID */ +- (iw_handler) prism2_ioctl_giwessid, /* SIOCGIWESSID */ +- (iw_handler) prism2_ioctl_siwnickn, /* SIOCSIWNICKN */ +- (iw_handler) prism2_ioctl_giwnickn, /* SIOCGIWNICKN */ +- (iw_handler) NULL, /* -- hole -- */ +- (iw_handler) NULL, /* -- hole -- */ +- (iw_handler) prism2_ioctl_siwrate, /* SIOCSIWRATE */ +- (iw_handler) prism2_ioctl_giwrate, /* SIOCGIWRATE */ +- (iw_handler) prism2_ioctl_siwrts, /* SIOCSIWRTS */ +- (iw_handler) prism2_ioctl_giwrts, /* SIOCGIWRTS */ +- (iw_handler) prism2_ioctl_siwfrag, /* SIOCSIWFRAG */ +- (iw_handler) prism2_ioctl_giwfrag, /* SIOCGIWFRAG */ +- (iw_handler) prism2_ioctl_siwtxpow, /* SIOCSIWTXPOW */ +- (iw_handler) prism2_ioctl_giwtxpow, /* SIOCGIWTXPOW */ +- (iw_handler) prism2_ioctl_siwretry, /* SIOCSIWRETRY */ +- (iw_handler) prism2_ioctl_giwretry, /* SIOCGIWRETRY */ +- (iw_handler) prism2_ioctl_siwencode, /* SIOCSIWENCODE */ +- (iw_handler) prism2_ioctl_giwencode, /* SIOCGIWENCODE */ +- (iw_handler) prism2_ioctl_siwpower, /* SIOCSIWPOWER */ +- (iw_handler) prism2_ioctl_giwpower, /* SIOCGIWPOWER */ +- (iw_handler) NULL, /* -- hole -- */ +- (iw_handler) NULL, /* -- hole -- */ +- (iw_handler) prism2_ioctl_siwgenie, /* SIOCSIWGENIE */ +- (iw_handler) prism2_ioctl_giwgenie, /* SIOCGIWGENIE */ +- (iw_handler) prism2_ioctl_siwauth, /* SIOCSIWAUTH */ +- (iw_handler) prism2_ioctl_giwauth, /* SIOCGIWAUTH */ +- (iw_handler) prism2_ioctl_siwencodeext, /* SIOCSIWENCODEEXT */ +- (iw_handler) prism2_ioctl_giwencodeext, /* SIOCGIWENCODEEXT */ +- (iw_handler) NULL, /* SIOCSIWPMKSA */ +- (iw_handler) NULL, /* -- hole -- */ ++ NULL, /* SIOCSIWCOMMIT */ ++ prism2_get_name, /* SIOCGIWNAME */ ++ NULL, /* SIOCSIWNWID */ ++ NULL, /* SIOCGIWNWID */ ++ prism2_ioctl_siwfreq, /* SIOCSIWFREQ */ ++ prism2_ioctl_giwfreq, /* SIOCGIWFREQ */ ++ prism2_ioctl_siwmode, /* SIOCSIWMODE */ ++ prism2_ioctl_giwmode, /* SIOCGIWMODE */ ++ prism2_ioctl_siwsens, /* SIOCSIWSENS */ ++ prism2_ioctl_giwsens, /* SIOCGIWSENS */ ++ NULL /* not used */, /* SIOCSIWRANGE */ ++ prism2_ioctl_giwrange, /* SIOCGIWRANGE */ ++ NULL /* not used */, /* SIOCSIWPRIV */ ++ NULL /* kernel code */, /* SIOCGIWPRIV */ ++ NULL /* not used */, /* SIOCSIWSTATS */ ++ NULL /* kernel code */, /* SIOCGIWSTATS */ ++ iw_handler_set_spy, /* SIOCSIWSPY */ ++ iw_handler_get_spy, /* SIOCGIWSPY */ ++ iw_handler_set_thrspy, /* SIOCSIWTHRSPY */ ++ iw_handler_get_thrspy, /* SIOCGIWTHRSPY */ ++ prism2_ioctl_siwap, /* SIOCSIWAP */ ++ prism2_ioctl_giwap, /* SIOCGIWAP */ ++ prism2_ioctl_siwmlme, /* SIOCSIWMLME */ ++ prism2_ioctl_giwaplist, /* SIOCGIWAPLIST */ ++ prism2_ioctl_siwscan, /* SIOCSIWSCAN */ ++ prism2_ioctl_giwscan, /* SIOCGIWSCAN */ ++ prism2_ioctl_siwessid, /* SIOCSIWESSID */ ++ prism2_ioctl_giwessid, /* SIOCGIWESSID */ ++ prism2_ioctl_siwnickn, /* SIOCSIWNICKN */ ++ prism2_ioctl_giwnickn, /* SIOCGIWNICKN */ ++ NULL, /* -- hole -- */ ++ NULL, /* -- hole -- */ ++ prism2_ioctl_siwrate, /* SIOCSIWRATE */ ++ prism2_ioctl_giwrate, /* SIOCGIWRATE */ ++ prism2_ioctl_siwrts, /* SIOCSIWRTS */ ++ prism2_ioctl_giwrts, /* SIOCGIWRTS */ ++ prism2_ioctl_siwfrag, /* SIOCSIWFRAG */ ++ prism2_ioctl_giwfrag, /* SIOCGIWFRAG */ ++ prism2_ioctl_siwtxpow, /* SIOCSIWTXPOW */ ++ prism2_ioctl_giwtxpow, /* SIOCGIWTXPOW */ ++ prism2_ioctl_siwretry, /* SIOCSIWRETRY */ ++ prism2_ioctl_giwretry, /* SIOCGIWRETRY */ ++ prism2_ioctl_siwencode, /* SIOCSIWENCODE */ ++ prism2_ioctl_giwencode, /* SIOCGIWENCODE */ ++ prism2_ioctl_siwpower, /* SIOCSIWPOWER */ ++ prism2_ioctl_giwpower, /* SIOCGIWPOWER */ ++ NULL, /* -- hole -- */ ++ NULL, /* -- hole -- */ ++ prism2_ioctl_siwgenie, /* SIOCSIWGENIE */ ++ prism2_ioctl_giwgenie, /* SIOCGIWGENIE */ ++ prism2_ioctl_siwauth, /* SIOCSIWAUTH */ ++ prism2_ioctl_giwauth, /* SIOCGIWAUTH */ ++ prism2_ioctl_siwencodeext, /* SIOCSIWENCODEEXT */ ++ prism2_ioctl_giwencodeext, /* SIOCGIWENCODEEXT */ ++ NULL, /* SIOCSIWPMKSA */ ++ NULL, /* -- hole -- */ + }; static const iw_handler prism2_private_handler[] = { /* SIOCIWFIRSTPRIV + */ @@ -67538,6 +67666,17 @@ index 3e5fa78..ca2e051 100644 }; const struct iw_handler_def hostap_iw_handler_def = +@@ -3954,8 +3992,8 @@ const struct iw_handler_def hostap_iw_handler_def = + .num_standard = ARRAY_SIZE(prism2_handler), + .num_private = ARRAY_SIZE(prism2_private_handler), + .num_private_args = ARRAY_SIZE(prism2_priv), +- .standard = (iw_handler *) prism2_handler, +- .private = (iw_handler *) prism2_private_handler, ++ .standard = prism2_handler, ++ .private = prism2_private_handler, + .private_args = (struct iw_priv_args *) prism2_priv, + .get_wireless_stats = hostap_get_wireless_stats, + }; diff --git a/drivers/net/wireless/intersil/orinoco/wext.c b/drivers/net/wireless/intersil/orinoco/wext.c index 1d4dae4..0508fc1 100644 --- a/drivers/net/wireless/intersil/orinoco/wext.c |