diff options
Diffstat (limited to '2.6.32')
-rw-r--r-- | 2.6.32/0000_README | 2 | ||||
-rw-r--r-- | 2.6.32/4420_grsecurity-2.2.1-2.6.32.28-201101131705.patch (renamed from 2.6.32/4420_grsecurity-2.2.1-2.6.32.28-201101120010.patch) | 13 |
2 files changed, 9 insertions, 6 deletions
diff --git a/2.6.32/0000_README b/2.6.32/0000_README index 18950d4..2b55d09 100644 --- a/2.6.32/0000_README +++ b/2.6.32/0000_README @@ -3,7 +3,7 @@ README Individual Patch Descriptions: ----------------------------------------------------------------------------- -Patch: 4420_grsecurity-2.2.1-2.6.32.28-201101120010.patch +Patch: 4420_grsecurity-2.2.1-2.6.32.28-201101131705.patch From: http://www.grsecurity.net Desc: hardened-sources base patch from upstream grsecurity diff --git a/2.6.32/4420_grsecurity-2.2.1-2.6.32.28-201101120010.patch b/2.6.32/4420_grsecurity-2.2.1-2.6.32.28-201101131705.patch index 4ddfa14..784ca5b 100644 --- a/2.6.32/4420_grsecurity-2.2.1-2.6.32.28-201101120010.patch +++ b/2.6.32/4420_grsecurity-2.2.1-2.6.32.28-201101131705.patch @@ -36492,8 +36492,8 @@ diff -urNp linux-2.6.32.28/grsecurity/gracl_alloc.c linux-2.6.32.28/grsecurity/g +} diff -urNp linux-2.6.32.28/grsecurity/gracl.c linux-2.6.32.28/grsecurity/gracl.c --- linux-2.6.32.28/grsecurity/gracl.c 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.32.28/grsecurity/gracl.c 2011-01-11 22:40:41.000000000 -0500 -@@ -0,0 +1,3983 @@ ++++ linux-2.6.32.28/grsecurity/gracl.c 2011-01-13 16:57:58.000000000 -0500 +@@ -0,0 +1,3986 @@ +#include <linux/kernel.h> +#include <linux/module.h> +#include <linux/sched.h> @@ -36644,6 +36644,8 @@ diff -urNp linux-2.6.32.28/grsecurity/gracl.c linux-2.6.32.28/grsecurity/gracl.c + return !memcmp(a, b, lena); +} + ++/* this must be called with vfsmount_lock and dcache_lock held */ ++ +static char * __our_d_path(struct dentry *dentry, struct vfsmount *vfsmnt, + struct dentry *root, struct vfsmount *rootmnt, + char *buffer, int buflen) @@ -36655,8 +36657,6 @@ diff -urNp linux-2.6.32.28/grsecurity/gracl.c linux-2.6.32.28/grsecurity/gracl.c + *--end = '\0'; + buflen--; + -+ spin_lock(&vfsmount_lock); -+ + if (buflen < 1) + goto Elong; + /* Get '/' right */ @@ -36690,7 +36690,6 @@ diff -urNp linux-2.6.32.28/grsecurity/gracl.c linux-2.6.32.28/grsecurity/gracl.c + } + +out: -+ spin_unlock(&vfsmount_lock); + return retval; + +global_root: @@ -36750,7 +36749,9 @@ diff -urNp linux-2.6.32.28/grsecurity/gracl.c linux-2.6.32.28/grsecurity/gracl.c + read_unlock(&reaper->fs->lock); + + spin_lock(&dcache_lock); ++ spin_lock(&vfsmount_lock); + res = gen_full_path((struct dentry *)dentry, (struct vfsmount *)vfsmnt, root, rootmnt, buf, buflen); ++ spin_unlock(&vfsmount_lock); + spin_unlock(&dcache_lock); + + dput(root); @@ -36763,8 +36764,10 @@ diff -urNp linux-2.6.32.28/grsecurity/gracl.c linux-2.6.32.28/grsecurity/gracl.c +{ + char *ret; + spin_lock(&dcache_lock); ++ spin_lock(&vfsmount_lock); + ret = __d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[0],smp_processor_id()), + PAGE_SIZE); ++ spin_unlock(&vfsmount_lock); + spin_unlock(&dcache_lock); + return ret; +} |