diff options
author | Anthony G. Basile <blueness@gentoo.org> | 2017-01-14 05:12:23 -0500 |
---|---|---|
committer | Anthony G. Basile <blueness@gentoo.org> | 2017-01-14 05:12:23 -0500 |
commit | de1872a478846a6eff5d790c525296c1dde6ad5f (patch) | |
tree | 3acceceb125c48246b82550efc28d83597b24736 | |
parent | grsecurity-3.1-4.8.17-201701090823 (diff) | |
download | hardened-patchset-de1872a478846a6eff5d790c525296c1dde6ad5f.tar.gz hardened-patchset-de1872a478846a6eff5d790c525296c1dde6ad5f.tar.bz2 hardened-patchset-de1872a478846a6eff5d790c525296c1dde6ad5f.zip |
grsecurity-3.1-4.8.17-20170112195020170112
-rw-r--r-- | 4.8.17/0000_README | 2 | ||||
-rw-r--r-- | 4.8.17/4420_grsecurity-3.1-4.8.17-201701121950.patch (renamed from 4.8.17/4420_grsecurity-3.1-4.8.17-201701090823.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 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); |