[PATCH] audit: minimize our use of audit_log_format()

Richard Guy Briggs rgb at redhat.com
Thu Nov 22 22:29:37 UTC 2018


On 2018-11-21 18:23, Paul Moore wrote:
> There are some cases where we are making multiple audit_log_format()
> calls in a row, for no apparent reason.  Squash these down to a
> single audit_log_format() call whenever possible.
> 
> Signed-off-by: Paul Moore <paul at paul-moore.com>

Ack.  Looks good.

> ---
>  kernel/audit.c          |   11 +++++------
>  kernel/audit_fsnotify.c |    3 +--
>  kernel/audit_tree.c     |    3 +--
>  kernel/audit_watch.c    |    3 +--
>  kernel/auditsc.c        |    7 +++----
>  5 files changed, 11 insertions(+), 16 deletions(-)
> 
> diff --git a/kernel/audit.c b/kernel/audit.c
> index 6c53e373b828..d09298d3c2d2 100644
> --- a/kernel/audit.c
> +++ b/kernel/audit.c
> @@ -2177,22 +2177,21 @@ void audit_log_name(struct audit_context *context, struct audit_names *n,
>  	}
>  
>  	/* log the audit_names record type */
> -	audit_log_format(ab, " nametype=");
>  	switch(n->type) {
>  	case AUDIT_TYPE_NORMAL:
> -		audit_log_format(ab, "NORMAL");
> +		audit_log_format(ab, " nametype=NORMAL");
>  		break;
>  	case AUDIT_TYPE_PARENT:
> -		audit_log_format(ab, "PARENT");
> +		audit_log_format(ab, " nametype=PARENT");
>  		break;
>  	case AUDIT_TYPE_CHILD_DELETE:
> -		audit_log_format(ab, "DELETE");
> +		audit_log_format(ab, " nametype=DELETE");
>  		break;
>  	case AUDIT_TYPE_CHILD_CREATE:
> -		audit_log_format(ab, "CREATE");
> +		audit_log_format(ab, " nametype=CREATE");
>  		break;
>  	default:
> -		audit_log_format(ab, "UNKNOWN");
> +		audit_log_format(ab, " nametype=UNKNOWN");
>  		break;
>  	}
>  
> diff --git a/kernel/audit_fsnotify.c b/kernel/audit_fsnotify.c
> index f90ffa699e5b..cf4512a33675 100644
> --- a/kernel/audit_fsnotify.c
> +++ b/kernel/audit_fsnotify.c
> @@ -131,8 +131,7 @@ static void audit_mark_log_rule_change(struct audit_fsnotify_mark *audit_mark, c
>  	if (unlikely(!ab))
>  		return;
>  	audit_log_session_info(ab);
> -	audit_log_format(ab, " op=%s", op);
> -	audit_log_format(ab, " path=");
> +	audit_log_format(ab, " op=%s path=", op);
>  	audit_log_untrustedstring(ab, audit_mark->path);
>  	audit_log_key(ab, rule->filterkey);
>  	audit_log_format(ab, " list=%d res=1", rule->listnr);
> diff --git a/kernel/audit_tree.c b/kernel/audit_tree.c
> index 58e84eb5d826..d4af4d97f847 100644
> --- a/kernel/audit_tree.c
> +++ b/kernel/audit_tree.c
> @@ -533,8 +533,7 @@ static void audit_tree_log_remove_rule(struct audit_krule *rule)
>  	ab = audit_log_start(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE);
>  	if (unlikely(!ab))
>  		return;
> -	audit_log_format(ab, "op=remove_rule");
> -	audit_log_format(ab, " dir=");
> +	audit_log_format(ab, "op=remove_rule dir=");
>  	audit_log_untrustedstring(ab, rule->tree->pathname);
>  	audit_log_key(ab, rule->filterkey);
>  	audit_log_format(ab, " list=%d res=1", rule->listnr);
> diff --git a/kernel/audit_watch.c b/kernel/audit_watch.c
> index 568e48d1d0ab..20ef9ba134b0 100644
> --- a/kernel/audit_watch.c
> +++ b/kernel/audit_watch.c
> @@ -246,8 +246,7 @@ static void audit_watch_log_rule_change(struct audit_krule *r, struct audit_watc
>  	if (!ab)
>  		return;
>  	audit_log_session_info(ab);
> -	audit_log_format(ab, "op=%s", op);
> -	audit_log_format(ab, " path=");
> +	audit_log_format(ab, "op=%s path=", op);
>  	audit_log_untrustedstring(ab, w->path);
>  	audit_log_key(ab, r->filterkey);
>  	audit_log_format(ab, " list=%d res=1", r->listnr);
> diff --git a/kernel/auditsc.c b/kernel/auditsc.c
> index 605f2d825204..51e735aedf58 100644
> --- a/kernel/auditsc.c
> +++ b/kernel/auditsc.c
> @@ -2503,10 +2503,9 @@ void audit_seccomp_actions_logged(const char *names, const char *old_names,
>  	if (unlikely(!ab))
>  		return;
>  
> -	audit_log_format(ab, "op=seccomp-logging");
> -	audit_log_format(ab, " actions=%s", names);
> -	audit_log_format(ab, " old-actions=%s", old_names);
> -	audit_log_format(ab, " res=%d", res);
> +	audit_log_format(ab,
> +			 "op=seccomp-logging actions=%s old-actions=%s res=%d",
> +			 names, old_names, res);
>  	audit_log_end(ab);
>  }
>  
> 
> --
> Linux-audit mailing list
> Linux-audit at redhat.com
> https://www.redhat.com/mailman/listinfo/linux-audit

- RGB

--
Richard Guy Briggs <rgb at redhat.com>
Sr. S/W Engineer, Kernel Security, Base Operating Systems
Remote, Ottawa, Red Hat Canada
IRC: rgb, SunRaycer
Voice: +1.647.777.2635, Internal: (81) 32635




More information about the Linux-audit mailing list