diff options
author | David S. Miller <davem@davemloft.net> | 2011-07-21 12:39:35 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-07-21 12:39:35 -0700 |
commit | f5caadbb3d8fc0b71533e880c684b2230bdb76ac (patch) | |
tree | 7a23a2b44f6e043d9cb6ad4245b78da4bd2e14b0 /kernel | |
parent | 0ca87f05ba8bdc6791c14878464efc901ad71e99 (diff) | |
parent | 0f598f0b4c3b2259366cfa8adc01bd8e714c82d0 (diff) | |
download | linux-f5caadbb3d8fc0b71533e880c684b2230bdb76ac.tar.bz2 |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-next-2.6
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/audit.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/kernel/audit.c b/kernel/audit.c index 939500317066..52501b5d4902 100644 --- a/kernel/audit.c +++ b/kernel/audit.c @@ -55,6 +55,9 @@ #include <net/sock.h> #include <net/netlink.h> #include <linux/skbuff.h> +#ifdef CONFIG_SECURITY +#include <linux/security.h> +#endif #include <linux/netlink.h> #include <linux/freezer.h> #include <linux/tty.h> @@ -1502,6 +1505,32 @@ void audit_log(struct audit_context *ctx, gfp_t gfp_mask, int type, } } +#ifdef CONFIG_SECURITY +/** + * audit_log_secctx - Converts and logs SELinux context + * @ab: audit_buffer + * @secid: security number + * + * This is a helper function that calls security_secid_to_secctx to convert + * secid to secctx and then adds the (converted) SELinux context to the audit + * log by calling audit_log_format, thus also preventing leak of internal secid + * to userspace. If secid cannot be converted audit_panic is called. + */ +void audit_log_secctx(struct audit_buffer *ab, u32 secid) +{ + u32 len; + char *secctx; + + if (security_secid_to_secctx(secid, &secctx, &len)) { + audit_panic("Cannot convert secid to context"); + } else { + audit_log_format(ab, " obj=%s", secctx); + security_release_secctx(secctx, len); + } +} +EXPORT_SYMBOL(audit_log_secctx); +#endif + EXPORT_SYMBOL(audit_log_start); EXPORT_SYMBOL(audit_log_end); EXPORT_SYMBOL(audit_log_format); |