All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Moore <pmoore@redhat.com>
To: Richard Guy Briggs <rgb@redhat.com>
Cc: linux-audit@redhat.com, linux-kernel@vger.kernel.org,
	sgrubb@redhat.com, eparis@redhat.com
Subject: Re: [PATCH V4 (was V6) 1/2] audit: eliminate unnecessary extra layer of watch references
Date: Tue, 04 Aug 2015 18:27:54 -0400	[thread overview]
Message-ID: <1556598.MzHXrXHiTL@sifl> (raw)
In-Reply-To: <728d3132b9294ce23be7e95b22d82a9291d9c5fc.1438446498.git.rgb@redhat.com>

On Saturday, August 01, 2015 03:41:12 PM Richard Guy Briggs wrote:
> The audit watch count was imbalanced, adding an unnecessary layer of watch
> references.  Only add the second reference when it is added to a parent.
> 
> Signed-off-by: Richard Guy Briggs <rgb@redhat.com>
> ---
>  kernel/audit_watch.c |    5 ++---
>  kernel/auditfilter.c |   16 +++-------------
>  2 files changed, 5 insertions(+), 16 deletions(-)

Merged.  I'll push it out as soon as I finish up the reviews tonight.

> diff --git a/kernel/audit_watch.c b/kernel/audit_watch.c
> index 6e30024..f33f54c 100644
> --- a/kernel/audit_watch.c
> +++ b/kernel/audit_watch.c
> @@ -203,7 +203,6 @@ int audit_to_watch(struct audit_krule *krule, char
> *path, int len, u32 op) if (IS_ERR(watch))
>  		return PTR_ERR(watch);
> 
> -	audit_get_watch(watch);
>  	krule->watch = watch;
> 
>  	return 0;
> @@ -387,8 +386,7 @@ static void audit_add_to_parent(struct audit_krule
> *krule,
> 
>  		watch_found = 1;
> 
> -		/* put krule's and initial refs to temporary watch */
> -		audit_put_watch(watch);
> +		/* put krule's ref to temporary watch */
>  		audit_put_watch(watch);
> 
>  		audit_get_watch(w);
> @@ -400,6 +398,7 @@ static void audit_add_to_parent(struct audit_krule
> *krule, audit_get_parent(parent);
>  		watch->parent = parent;
> 
> +		audit_get_watch(watch);
>  		list_add(&watch->wlist, &parent->watches);
>  	}
>  	list_add(&krule->rlist, &watch->rules);
> diff --git a/kernel/auditfilter.c b/kernel/auditfilter.c
> index 72e1660..4cb9b44 100644
> --- a/kernel/auditfilter.c
> +++ b/kernel/auditfilter.c
> @@ -549,8 +549,6 @@ exit_nofree:
>  	return entry;
> 
>  exit_free:
> -	if (entry->rule.watch)
> -		audit_put_watch(entry->rule.watch); /* matches initial get */
>  	if (entry->rule.tree)
>  		audit_put_tree(entry->rule.tree); /* that's the temporary one */
>  	audit_free_rule(entry);
> @@ -881,7 +879,7 @@ static inline int audit_add_rule(struct audit_entry
> *entry) /* normally audit_add_tree_rule() will free it on failure */
>  		if (tree)
>  			audit_put_tree(tree);
> -		goto error;
> +		return err;
>  	}
> 
>  	if (watch) {
> @@ -895,14 +893,14 @@ static inline int audit_add_rule(struct audit_entry
> *entry) */
>  			if (tree)
>  				audit_put_tree(tree);
> -			goto error;
> +			return err;
>  		}
>  	}
>  	if (tree) {
>  		err = audit_add_tree_rule(&entry->rule);
>  		if (err) {
>  			mutex_unlock(&audit_filter_mutex);
> -			goto error;
> +			return err;
>  		}
>  	}
> 
> @@ -933,11 +931,6 @@ static inline int audit_add_rule(struct audit_entry
> *entry) #endif
>  	mutex_unlock(&audit_filter_mutex);
> 
> - 	return 0;
> -
> -error:
> -	if (watch)
> -		audit_put_watch(watch); /* tmp watch, matches initial get */
>  	return err;
>  }
> 
> @@ -945,7 +938,6 @@ error:
>  static inline int audit_del_rule(struct audit_entry *entry)
>  {
>  	struct audit_entry  *e;
> -	struct audit_watch *watch = entry->rule.watch;
>  	struct audit_tree *tree = entry->rule.tree;
>  	struct list_head *list;
>  	int ret = 0;
> @@ -986,8 +978,6 @@ static inline int audit_del_rule(struct audit_entry
> *entry) mutex_unlock(&audit_filter_mutex);
> 
>  out:
> -	if (watch)
> -		audit_put_watch(watch); /* match initial get */
>  	if (tree)
>  		audit_put_tree(tree);	/* that's the temporary one */

-- 
paul moore
security @ redhat

  reply	other threads:[~2015-08-04 22:27 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-01 19:41 [PATCH V4 (was V6) 0/2] audit: rebalance and remove extra layers of watch references Richard Guy Briggs
2015-08-01 19:41 ` Richard Guy Briggs
2015-08-01 19:41 ` [PATCH V4 (was V6) 1/2] audit: eliminate unnecessary extra layer " Richard Guy Briggs
2015-08-01 19:41   ` Richard Guy Briggs
2015-08-04 22:27   ` Paul Moore [this message]
2015-08-01 19:41 ` [PATCH V4 (was V6) 2/2] audit: eliminate unnecessary extra layer of watch parent references Richard Guy Briggs
2015-08-04 22:28   ` Paul Moore

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1556598.MzHXrXHiTL@sifl \
    --to=pmoore@redhat.com \
    --cc=eparis@redhat.com \
    --cc=linux-audit@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rgb@redhat.com \
    --cc=sgrubb@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.