commit:     de1872a478846a6eff5d790c525296c1dde6ad5f
Author:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 14 10:12:23 2017 +0000
Commit:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sat Jan 14 10:12:23 2017 +0000
URL:        
https://gitweb.gentoo.org/proj/hardened-patchset.git/commit/?id=de1872a4

grsecurity-3.1-4.8.17-201701121950

 4.8.17/0000_README                                 |  2 +-
 ... 4420_grsecurity-3.1-4.8.17-201701121950.patch} | 31 +++++++++++++++++++++-
 2 files changed, 31 insertions(+), 2 deletions(-)

diff --git a/4.8.17/0000_README b/4.8.17/0000_README
index c7c05dd..a2e828f 100644
--- a/4.8.17/0000_README
+++ b/4.8.17/0000_README
@@ -6,7 +6,7 @@ Patch:  1016_linux-4.8.17.patch
 From:  http://www.kernel.org
 Desc:  Linux 4.8.17
 
-Patch: 4420_grsecurity-3.1-4.8.17-201701090823.patch
+Patch: 4420_grsecurity-3.1-4.8.17-201701121950.patch
 From:  http://www.grsecurity.net
 Desc:  hardened-sources base patch from upstream grsecurity
 

diff --git a/4.8.17/4420_grsecurity-3.1-4.8.17-201701090823.patch 
b/4.8.17/4420_grsecurity-3.1-4.8.17-201701121950.patch
similarity index 99%
rename from 4.8.17/4420_grsecurity-3.1-4.8.17-201701090823.patch
rename to 4.8.17/4420_grsecurity-3.1-4.8.17-201701121950.patch
index 2dc50ac..07572d7 100644
--- a/4.8.17/4420_grsecurity-3.1-4.8.17-201701090823.patch
+++ b/4.8.17/4420_grsecurity-3.1-4.8.17-201701121950.patch
@@ -155668,7 +155668,7 @@ index 38aa5e0..9b3e13b 100644
                return -ENOMEM;
  
 diff --git a/mm/slab.c b/mm/slab.c
-index 525a911..227387b 100644
+index 525a911..b6279c0 100644
 --- a/mm/slab.c
 +++ b/mm/slab.c
 @@ -116,6 +116,7 @@
@@ -155761,6 +155761,35 @@ index 525a911..227387b 100644
        /*
         * Check that size is in terms of words.  This is needed to avoid
         * unaligned accesses for some archs when redzoning is used, and makes
+@@ -2482,7 +2489,6 @@ union freelist_init_state {
+               unsigned int pos;
+               unsigned int *list;
+               unsigned int count;
+-              unsigned int rand;
+       };
+       struct rnd_state rnd_state;
+ };
+@@ -2508,8 +2514,7 @@ static bool freelist_state_initialize(union 
freelist_init_state *state,
+       } else {
+               state->list = cachep->random_seq;
+               state->count = count;
+-              state->pos = 0;
+-              state->rand = rand;
++              state->pos = rand % count;
+               ret = true;
+       }
+       return ret;
+@@ -2518,7 +2523,9 @@ static bool freelist_state_initialize(union 
freelist_init_state *state,
+ /* Get the next entry on the list and randomize it using a random shift */
+ static freelist_idx_t next_random_slot(union freelist_init_state *state)
+ {
+-      return (state->list[state->pos++] + state->rand) % state->count;
++      if (state->pos >= state->count)
++              state->pos = 0;
++      return state->list[state->pos++];
+ }
+ 
+ /* Swap two freelist entries */
 @@ -3524,6 +3531,20 @@ void ___cache_free(struct kmem_cache *cachep, void 
*objp,
        struct array_cache *ac = cpu_cache_get(cachep);
  

Reply via email to