[[wiki:experiences/igraltist/patches|Back to igraltist's experiences]] diff -u --recursive rsbac_2.6.31.5/fs/exec.c rsbac_2.6.31.5_r802/fs/exec.c --- rsbac_2.6.31.5/fs/exec.c 2009-10-28 23:55:52.844771089 +0100 +++ rsbac_2.6.31.5_r802/fs/exec.c 2009-10-28 23:43:38.169770699 +0100 @@ -55,12 +55,23 @@ #include #include #include +#include +#include +#ifdef CONFIG_PAX_REFCOUNT +#include +#include +#endif #include #include #include #include "internal.h" +#ifdef CONFIG_PAX_HOOK_ACL_FLAGS +void (*pax_set_initial_flags_func)(struct linux_binprm *bprm); +EXPORT_SYMBOL(pax_set_initial_flags_func); +#endif + #include int core_uses_pid; diff -u --recursive rsbac_2.6.31.5/fs/pipe.c rsbac_2.6.31.5_r802/fs/pipe.c --- rsbac_2.6.31.5/fs/pipe.c 2009-10-28 23:55:54.697835298 +0100 +++ rsbac_2.6.31.5_r802/fs/pipe.c 2009-10-28 23:42:44.939358139 +0100 @@ -776,10 +776,10 @@ mutex_lock(&inode->i_mutex); pipe = inode->i_pipe; - pipe->readers -= decr; - pipe->writers -= decw; - - if (!pipe->readers && !pipe->writers) { + atomic_sub(decr, &pipe->readers); + atomic_sub(decw, &pipe->writers); + + if (!atomic_read(&pipe->readers) && !atomic_read(&pipe->writers)) { #ifdef CONFIG_RSBAC union rsbac_target_id_t rsbac_target_id; diff -u --recursive rsbac_2.6.31.5/init/do_mounts.c rsbac_2.6.31.5_r802/init/do_mounts.c --- rsbac_2.6.31.5/init/do_mounts.c 2009-10-28 23:55:57.681869144 +0100 +++ rsbac_2.6.31.5_r802/init/do_mounts.c 2009-10-28 23:43:38.169770699 +0100 @@ -423,8 +423,8 @@ mount_root(); out: - sys_mount(".", "/", NULL, MS_MOVE, NULL); - sys_chroot("."); + sys_mount((char __user *)".", (char __user *)"/", NULL, MS_MOVE, NULL); + sys_chroot((char __user *)"."); /* RSBAC: OK, most stuff initialized and root mounted: Init RSBAC. */ #ifdef CONFIG_RSBAC diff -u --recursive rsbac_2.6.31.5/mm/mprotect.c rsbac_2.6.31.5_r802/mm/mprotect.c --- rsbac_2.6.31.5/mm/mprotect.c 2009-10-28 23:55:59.767198890 +0100 +++ rsbac_2.6.31.5_r802/mm/mprotect.c 2009-10-28 23:43:38.196557623 +0100 @@ -24,10 +24,17 @@ #include #include #include + +#ifdef CONFIG_PAX_MPROTECT +#include +#endif + #include #include #include #include +#include + #include #ifndef pgprot_modify