X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-kernel.git;a=blobdiff_plain;f=security%2Fcommoncap.c;h=f90d82f128ccbc859e3ae2a97f774e6188435165;hp=ee4f8486e5f563dff63c13278a1258e43e2b7859;hb=refs%2Fheads%2Fpandora-3.2-c64_tools;hpb=866d43c9ea88daa3751b58aba16a2a9b7f7aa067 diff --git a/security/commoncap.c b/security/commoncap.c index ee4f8486e5f5..f90d82f128cc 100644 --- a/security/commoncap.c +++ b/security/commoncap.c @@ -28,6 +28,7 @@ #include #include #include +#include /* * If a non-root user executes a setuid-root binary in @@ -514,6 +515,11 @@ int cap_bprm_set_creds(struct linux_binprm *bprm) } skip: + /* if we have fs caps, clear dangerous personality flags */ + if (!cap_issubset(new->cap_permitted, old->cap_permitted)) + bprm->per_clear |= PER_CLEAR_ON_SETID; + + /* Don't let someone trace a set[ug]id/setpcap binary with the revised * credentials unless they have the appropriate permit */ @@ -975,3 +981,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot, } return ret; } +EXPORT_SYMBOL(cap_file_mmap);