diff options
author | James Morris <james.l.morris@oracle.com> | 2012-05-22 11:21:06 +1000 |
---|---|---|
committer | James Morris <james.l.morris@oracle.com> | 2012-05-22 11:21:06 +1000 |
commit | ff2bb047c4bce9742e94911eeb44b4d6ff4734ab (patch) | |
tree | 9d9b1cfa3fc17f0cc13f34ca697306cb1f46b05f /security/selinux/ss/context.h | |
parent | cffee16e8b997ab947de661e8820e486b0830c94 (diff) | |
parent | c737f8284cac91428f8fcc8281e69117fa16e887 (diff) | |
download | op-kernel-dev-ff2bb047c4bce9742e94911eeb44b4d6ff4734ab.zip op-kernel-dev-ff2bb047c4bce9742e94911eeb44b4d6ff4734ab.tar.gz |
Merge branch 'master' of git://git.infradead.org/users/eparis/selinux into next
Per pull request, for 3.5.
Diffstat (limited to 'security/selinux/ss/context.h')
-rw-r--r-- | security/selinux/ss/context.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/security/selinux/ss/context.h b/security/selinux/ss/context.h index 45e8fb0..212e347 100644 --- a/security/selinux/ss/context.h +++ b/security/selinux/ss/context.h @@ -74,6 +74,26 @@ out: return rc; } +/* + * Sets both levels in the MLS range of 'dst' to the high level of 'src'. + */ +static inline int mls_context_cpy_high(struct context *dst, struct context *src) +{ + int rc; + + dst->range.level[0].sens = src->range.level[1].sens; + rc = ebitmap_cpy(&dst->range.level[0].cat, &src->range.level[1].cat); + if (rc) + goto out; + + dst->range.level[1].sens = src->range.level[1].sens; + rc = ebitmap_cpy(&dst->range.level[1].cat, &src->range.level[1].cat); + if (rc) + ebitmap_destroy(&dst->range.level[0].cat); +out: + return rc; +} + static inline int mls_context_cmp(struct context *c1, struct context *c2) { return ((c1->range.level[0].sens == c2->range.level[0].sens) && |