[PATCH][Mako][Manta][Flo][Goldfish]: UBUNTU: SAUCE: (no-up): apparmor: Fix backports fd_inheritance regression

John Johansen john.johansen at canonical.com
Thu Mar 5 08:57:27 UTC 2015


The backport patch series will not be upstreamed as it is for porting
current versions of apparmor to older kernel versions.

BugLink: http://bugs.launchpad.net/bugs/1423810

On pre 3.5 kernels with the apparmor 3 backport patchset (Mako, Manta,
Flo, Goldfish, ...) running the fd_inheritance test from the apparmor
regression tests causes the kernel to crash and spontaneously reboot the
device.

This is due to a ref count bug, caused by the backport macro not correctly
dealing with changes to dentry_open introduced in the commit
765927b2d508712d320c8934db963bbe14c3fcec.

Signed-off-by: John Johansen <john.johansen at canonical.com>
---
 security/apparmor/include/backport.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/security/apparmor/include/backport.h b/security/apparmor/include/backport.h
index 046ca70..623ed40 100644
--- a/security/apparmor/include/backport.h
+++ b/security/apparmor/include/backport.h
@@ -40,7 +40,8 @@ int replace_fd(unsigned fd, struct file *file, unsigned flags);
 #define uid_eq(X, Y) ((X) == (Y))
 
 /* 3.5 backport commit 765927b2d508712d320c8934db963bbe14c3fcec */
-#define dentry_open(P, F, C) (dentry_open)((P)->dentry, (P)->mnt, (F), (C))
+#include <linux/mount.h>	/* For mntget */
+#define dentry_open(P, F, C) (dentry_open)(dget((P)->dentry), mntget((P)->mnt), (F), (C))
 
 /* 3.4 backport, commit d007794a182bc072a7b7479909dbd0d67ba341be */
 #include <linux/capability.h>
-- 
2.1.0





More information about the kernel-team mailing list