commit:     65558af35749a9213e649a3b580778da10dc42dd
Author:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sat May 14 11:07:59 2016 +0000
Commit:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sat May 14 11:07:59 2016 +0000
URL:        
https://gitweb.gentoo.org/proj/hardened-patchset.git/commit/?id=65558af3

grsecurity-3.1-4.5.4-201605131918

 4.5.4/0000_README                                  |  2 +-
 ...> 4420_grsecurity-3.1-4.5.4-201605131918.patch} | 63 +++++++++++++++-------
 2 files changed, 45 insertions(+), 20 deletions(-)

diff --git a/4.5.4/0000_README b/4.5.4/0000_README
index c80ae26..d196de1 100644
--- a/4.5.4/0000_README
+++ b/4.5.4/0000_README
@@ -6,7 +6,7 @@ Patch: 1003_linux-4.5.4.patch
 From:  http://www.kernel.org
 Desc:  Linux 4.5.4
 
-Patch: 4420_grsecurity-3.1-4.5.4-201605122039.patch
+Patch: 4420_grsecurity-3.1-4.5.4-201605131918.patch
 From:  http://www.grsecurity.net
 Desc:  hardened-sources base patch from upstream grsecurity
 

diff --git a/4.5.4/4420_grsecurity-3.1-4.5.4-201605122039.patch 
b/4.5.4/4420_grsecurity-3.1-4.5.4-201605131918.patch
similarity index 99%
rename from 4.5.4/4420_grsecurity-3.1-4.5.4-201605122039.patch
rename to 4.5.4/4420_grsecurity-3.1-4.5.4-201605131918.patch
index 392d870..4d957ee 100644
--- a/4.5.4/4420_grsecurity-3.1-4.5.4-201605122039.patch
+++ b/4.5.4/4420_grsecurity-3.1-4.5.4-201605131918.patch
@@ -169974,10 +169974,10 @@ index 0000000..7c59f38
 +}
 diff --git a/tools/gcc/rap_plugin/rap_plugin.c 
b/tools/gcc/rap_plugin/rap_plugin.c
 new file mode 100644
-index 0000000..cdac9c1
+index 0000000..bca74dc
 --- /dev/null
 +++ b/tools/gcc/rap_plugin/rap_plugin.c
-@@ -0,0 +1,486 @@
+@@ -0,0 +1,511 @@
 +/*
 + * Copyright 2012-2016 by PaX Team <[email protected]>
 + * Licensed under the GPL v2
@@ -170105,12 +170105,39 @@ index 0000000..cdac9c1
 +      return cgraph_for_node_and_aliases(node, 
__rap_cgraph_indirectly_callable, NULL, true);
 +}
 +
++static void rap_hash_align(tree decl)
++{
++      const unsigned HOST_WIDE_INT rap_hash_offset = TARGET_64BIT ? 2 * 
sizeof(rap_hash_t) : sizeof(rap_hash_t);
++      unsigned HOST_WIDE_INT skip;
++
++      skip = 1ULL << align_functions_log;
++      if (DECL_USER_ALIGN(decl))
++              return;
++
++      if (!optimize_function_for_speed_p(cfun))
++              return;
++
++      if (skip <= rap_hash_offset)
++              return;
++
++#ifdef TARGET_386
++      {
++              char padding[skip - rap_hash_offset];
++
++              // this byte sequence helps disassemblers not trip up on the 
following rap hash
++              memset(padding, 0xcc, sizeof padding - 1);
++              padding[sizeof padding - 1] = 0xb8;
++              ASM_OUTPUT_ASCII(asm_out_file, padding, sizeof padding);
++      }
++#else
++      ASM_OUTPUT_SKIP(asm_out_file, skip - rap_hash_offset);
++#endif
++}
++
 +static void rap_begin_function(tree decl)
 +{
 +      cgraph_node_ptr node;
 +      rap_hash_t imprecise_rap_hash;
-+      unsigned HOST_WIDE_INT skip;
-+      const unsigned HOST_WIDE_INT rap_hash_offset = TARGET_64BIT ? 2 * 
sizeof(rap_hash_t) : sizeof(rap_hash_t);
 +
 +      gcc_assert(debug_hooks == &rap_debug_hooks);
 +
@@ -170119,9 +170146,7 @@ index 0000000..cdac9c1
 +              old_debug_hooks->begin_function(decl);
 +
 +      // align the rap hash if necessary
-+      skip = 1ULL << align_functions_log;
-+      if (skip > rap_hash_offset)
-+              ASM_OUTPUT_SKIP(asm_out_file, skip - rap_hash_offset);
++      rap_hash_align(decl);
 +
 +      // don't compute hash for functions called only directly
 +      node = cgraph_get_node(decl);
@@ -170136,9 +170161,9 @@ index 0000000..cdac9c1
 +              inform(DECL_SOURCE_LOCATION(decl), "func rap_hash: %x %s", 
imprecise_rap_hash.hash, IDENTIFIER_POINTER(DECL_ASSEMBLER_NAME(decl)));
 +
 +      if (TARGET_64BIT)
-+              fprintf(asm_out_file, ".quad %#lx\t%s __rap_hash_%s\n", 
(long)imprecise_rap_hash.hash, ASM_COMMENT_START, 
IDENTIFIER_POINTER(DECL_ASSEMBLER_NAME(decl)));
++              fprintf(asm_out_file, "\t.quad %#lx\t%s __rap_hash_%s\n", 
(long)imprecise_rap_hash.hash, ASM_COMMENT_START, 
IDENTIFIER_POINTER(DECL_ASSEMBLER_NAME(decl)));
 +      else
-+              fprintf(asm_out_file, ".long %#x\t%s __rap_hash_%s\n", 
imprecise_rap_hash.hash, ASM_COMMENT_START, 
IDENTIFIER_POINTER(DECL_ASSEMBLER_NAME(decl)));
++              fprintf(asm_out_file, "\t.long %#x\t%s __rap_hash_%s\n", 
imprecise_rap_hash.hash, ASM_COMMENT_START, 
IDENTIFIER_POINTER(DECL_ASSEMBLER_NAME(decl)));
 +}
 +
 +static void rap_start_unit_common(void *gcc_data __unused, void *user_data 
__unused)
@@ -170611,10 +170636,10 @@ index 0000000..f74d85a
 +targets += size_overflow_hash.h size_overflow_hash_aux.h 
disable_size_overflow_hash.h
 diff --git a/tools/gcc/size_overflow_plugin/disable_size_overflow_hash.data 
b/tools/gcc/size_overflow_plugin/disable_size_overflow_hash.data
 new file mode 100644
-index 0000000..a5916c8
+index 0000000..2a420f3
 --- /dev/null
 +++ b/tools/gcc/size_overflow_plugin/disable_size_overflow_hash.data
-@@ -0,0 +1,12441 @@
+@@ -0,0 +1,12444 @@
 +disable_so_interrupt_pnode_gru_message_queue_desc_4 interrupt_pnode 
gru_message_queue_desc 0 4 NULL
 +disable_so_bch_btree_insert_fndecl_12 bch_btree_insert fndecl 0 12 NULL
 +disable_so_macvlan_sync_address_fndecl_22 macvlan_sync_address fndecl 0 22 
NULL nohasharray
@@ -183056,6 +183081,9 @@ index 0000000..a5916c8
 +enable_so_squashfs_iget_fndecl_37485 squashfs_iget fndecl 3 37485 NULL
 +enable_so_new_offset_mdp_superblock_1_6501 new_offset mdp_superblock_1 0 6501 
NULL
 +enable_so_lookup_memtype_fndecl_20192 lookup_memtype fndecl 1 20192 NULL
++enable_so_inofree_iagctl_5194 inofree iagctl 0 5194 NULL
++enable_so_inofreefwd_iag_4921 inofreefwd iag 0 4921 NULL
++enable_so_iagnum_iag_23227 iagnum iag 0 23227 NULL
 diff --git a/tools/gcc/size_overflow_plugin/generate_size_overflow_hash.sh 
b/tools/gcc/size_overflow_plugin/generate_size_overflow_hash.sh
 new file mode 100644
 index 0000000..be9724d
@@ -183542,7 +183570,7 @@ index 0000000..ee987da
 +#include "gcc-generate-gimple-pass.h"
 diff --git a/tools/gcc/size_overflow_plugin/intentional_overflow.c 
b/tools/gcc/size_overflow_plugin/intentional_overflow.c
 new file mode 100644
-index 0000000..b12cef3
+index 0000000..a47c089
 --- /dev/null
 +++ b/tools/gcc/size_overflow_plugin/intentional_overflow.c
 @@ -0,0 +1,1166 @@
@@ -184679,7 +184707,7 @@ index 0000000..b12cef3
 +{
 +      const_tree rhs, lhs_type, rhs_type;
 +      const_tree def_rhs1, def_rhs2;
-+      const_gimple def_stmt;
++      gimple def_stmt;
 +      gimple def_def_stmt = NULL;
 +
 +      if (!gimple_assign_cast_p(stmt))
@@ -184700,7 +184728,7 @@ index 0000000..b12cef3
 +
 +      // _37 = _36 | -32768;
 +      def_stmt = get_def_stmt(rhs);
-+      if (!def_stmt || gimple_assign_rhs_code(def_stmt) != BIT_IOR_EXPR)
++      if (!def_stmt || !gimple_assign_cast_p(def_stmt) || 
gimple_assign_rhs_code(def_stmt) != BIT_IOR_EXPR)
 +              return false;
 +      def_rhs1 = gimple_assign_rhs1(def_stmt);
 +      def_rhs2 = gimple_assign_rhs2(def_stmt);
@@ -185394,10 +185422,10 @@ index 0000000..4098952
 +}
 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_hash.data 
b/tools/gcc/size_overflow_plugin/size_overflow_hash.data
 new file mode 100644
-index 0000000..b3ac1cc
+index 0000000..5364a49
 --- /dev/null
 +++ b/tools/gcc/size_overflow_plugin/size_overflow_hash.data
-@@ -0,0 +1,21647 @@
+@@ -0,0 +1,21644 @@
 +enable_so_recv_ctrl_pipe_us_data_0 recv_ctrl_pipe us_data 0 0 NULL
 +enable_so___earlyonly_bootmem_alloc_fndecl_3 __earlyonly_bootmem_alloc fndecl 
2-3-4 3 NULL
 +enable_so_v9fs_xattr_get_acl_fndecl_4 v9fs_xattr_get_acl fndecl 5 4 NULL
@@ -186994,7 +187022,6 @@ index 0000000..b3ac1cc
 +enable_so_SYSC_fgetxattr_fndecl_4904 SYSC_fgetxattr fndecl 4 4904 NULL
 +enable_so_diva_um_idi_read_fndecl_4912 diva_um_idi_read fndecl 0 4912 NULL
 +enable_so_tree_mod_log_eb_move_fndecl_4920 tree_mod_log_eb_move fndecl 5 4920 
NULL
-+enable_so_inofreefwd_iag_4921 inofreefwd iag 0 4921 NULL
 +enable_so_leaf_copy_items_fndecl_4923 leaf_copy_items fndecl 5 4923 NULL
 +enable_so_ui_size_ubifs_inode_4934 ui_size ubifs_inode 0 4934 NULL
 +enable_so_bpp_drm_mode_fb_cmd_4936 bpp drm_mode_fb_cmd 0 4936 NULL
@@ -187083,7 +187110,6 @@ index 0000000..b3ac1cc
 +enable_so_len_bts_file_action_5178 len bts_file_action 0 5178 
&enable_so_ext4_es_insert_extent_fndecl_5178
 +enable_so_lpfc_issue_ct_rsp_fndecl_5182 lpfc_issue_ct_rsp fndecl 6 5182 NULL
 +enable_so_port_mlx5_ib_qp_5186 port mlx5_ib_qp 0 5186 NULL
-+enable_so_inofree_iagctl_5194 inofree iagctl 0 5194 NULL
 +enable_so_SyS_lsetxattr_fndecl_5195 SyS_lsetxattr fndecl 4 5195 NULL
 +enable_so_size_drm_amdgpu_gem_userptr_5196 size drm_amdgpu_gem_userptr 0 5196 
NULL
 +enable_so_hidp_raw_request_fndecl_5198 hidp_raw_request fndecl 4 5198 NULL
@@ -193092,7 +193118,6 @@ index 0000000..b3ac1cc
 +enable_so_num_channels_sh_mtu2_device_23224 num_channels sh_mtu2_device 0 
23224 NULL
 +enable_so_clk_core_get_rate_fndecl_23225 clk_core_get_rate fndecl 0 23225 
NULL nohasharray
 +enable_so_vid_hdr_offset_ubi_device_23225 vid_hdr_offset ubi_device 0 23225 
&enable_so_clk_core_get_rate_fndecl_23225
-+enable_so_iagnum_iag_23227 iagnum iag 0 23227 NULL
 +enable_so_nvkm_client_map_fndecl_23228 nvkm_client_map fndecl 3-2 23228 NULL
 +enable_so_ubifs_prep_grp_node_fndecl_23231 ubifs_prep_grp_node fndecl 3 23231 
NULL nohasharray
 +enable_so_ivtv_v4l2_read_fndecl_23231 ivtv_v4l2_read fndecl 3 23231 
&enable_so_ubifs_prep_grp_node_fndecl_23231

Reply via email to