summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '4.5.2/4427_force_XATTR_PAX_tmpfs.patch')
-rw-r--r--4.5.2/4427_force_XATTR_PAX_tmpfs.patch57
1 files changed, 57 insertions, 0 deletions
diff --git a/4.5.2/4427_force_XATTR_PAX_tmpfs.patch b/4.5.2/4427_force_XATTR_PAX_tmpfs.patch
new file mode 100644
index 0000000..6db8e37
--- /dev/null
+++ b/4.5.2/4427_force_XATTR_PAX_tmpfs.patch
@@ -0,0 +1,57 @@
+From: Anthony G. Basile <blueness@gentoo.org>
+
+For users that emerge without XATTR_PAX support enabled, we still want user.pax.flags
+namespace supported on tmpfs so that the PaX markings survive emerge.
+
+diff -Naur a/mm/shmem.c b/mm/shmem.c
+--- a/mm/shmem.c 2016-04-29 19:56:25.306101147 -0400
++++ b/mm/shmem.c 2016-04-29 19:59:44.126104490 -0400
+@@ -2670,24 +2670,20 @@
+ return simple_xattr_set(&info->xattrs, name, value, size, flags);
+ }
+
+-#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
+ static int shmem_user_xattr_handler_set(const struct xattr_handler *handler,
+ struct dentry *dentry, const char *name,
+ const void *value, size_t size, int flags)
+ {
+ struct shmem_inode_info *info = SHMEM_I(d_inode(dentry));
+
+-#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
+ if (strcmp(name, XATTR_NAME_PAX_FLAGS))
+ return -EOPNOTSUPP;
+ if (size > 8)
+ return -EINVAL;
+-#endif
+
+ name = xattr_full_name(handler, name);
+ return simple_xattr_set(&info->xattrs, name, value, size, flags);
+ }
+-#endif
+
+ static const struct xattr_handler shmem_security_xattr_handler = {
+ .prefix = XATTR_SECURITY_PREFIX,
+@@ -2701,13 +2697,11 @@
+ .set = shmem_xattr_handler_set,
+ };
+
+-#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
+ static const struct xattr_handler shmem_user_xattr_handler = {
+ .prefix = XATTR_USER_PREFIX,
+ .get = shmem_xattr_handler_get,
+ .set = shmem_user_xattr_handler_set,
+ };
+-#endif
+
+ static const struct xattr_handler *shmem_xattr_handlers[] = {
+ #ifdef CONFIG_TMPFS_POSIX_ACL
+@@ -2717,9 +2711,7 @@
+ &shmem_security_xattr_handler,
+ &shmem_trusted_xattr_handler,
+
+-#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
+ &shmem_user_xattr_handler,
+-#endif
+
+ NULL
+ };