Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1183802 > unrolled thread
| Started by | Richard Guy Briggs <rgb@redhat.com> |
|---|---|
| First post | 2015-07-14 17:50 +0200 |
| Last post | 2015-07-17 02:40 +0200 |
| Articles | 3 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH V6 1/2] audit: eliminate unnecessary extra layer of watch references Richard Guy Briggs <rgb@redhat.com> - 2015-07-14 17:50 +0200
Re: [PATCH V6 1/2] audit: eliminate unnecessary extra layer of watch references Paul Moore <pmoore@redhat.com> - 2015-07-16 22:20 +0200
Re: [PATCH V6 1/2] audit: eliminate unnecessary extra layer of watch references Richard Guy Briggs <rgb@redhat.com> - 2015-07-17 02:40 +0200
| From | Richard Guy Briggs <rgb@redhat.com> |
|---|---|
| Date | 2015-07-14 17:50 +0200 |
| Subject | [PATCH V6 1/2] audit: eliminate unnecessary extra layer of watch references |
| Message-ID | <pMaD0-4AR-19@gated-at.bofh.it> |
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 | 9 ---------
2 files changed, 2 insertions(+), 12 deletions(-)
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..74cc077 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);
@@ -933,11 +931,7 @@ 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 +939,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 +979,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 */
--
1.7.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | Paul Moore <pmoore@redhat.com> |
|---|---|
| Date | 2015-07-16 22:20 +0200 |
| Message-ID | <pMXNo-l1-17@gated-at.bofh.it> |
| In reply to | #1183802 |
On Tuesday, July 14, 2015 11:40:41 AM 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 | 9 --------- > 2 files changed, 2 insertions(+), 12 deletions(-) Nice catch, we never needed that extra refcnt bump in audit_to_watch(). One minor comment below... > diff --git a/kernel/auditfilter.c b/kernel/auditfilter.c > index 72e1660..74cc077 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); > @@ -933,11 +931,7 @@ 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; > } Since the error label is now just a "return err;", how about removing the label entirely and replacing the gotos with returns? -- paul moore security @ redhat -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Richard Guy Briggs <rgb@redhat.com> |
|---|---|
| Date | 2015-07-17 02:40 +0200 |
| Subject | Re: [PATCH V6 1/2] audit: eliminate unnecessary extra layer of watch references |
| Message-ID | <pN1QZ-6aW-1@gated-at.bofh.it> |
| In reply to | #1186222 |
On 15/07/16, Paul Moore wrote: > On Tuesday, July 14, 2015 11:40:41 AM 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 | 9 --------- > > 2 files changed, 2 insertions(+), 12 deletions(-) > > Nice catch, we never needed that extra refcnt bump in audit_to_watch(). One > minor comment below... > > > diff --git a/kernel/auditfilter.c b/kernel/auditfilter.c > > index 72e1660..74cc077 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); > > @@ -933,11 +931,7 @@ 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; > > } > > Since the error label is now just a "return err;", how about removing the > label entirely and replacing the gotos with returns? Yup, sounds reasonable. > paul moore - RGB -- Richard Guy Briggs <rbriggs@redhat.com> Senior Software Engineer, Kernel Security, AMER ENG Base Operating Systems, Red Hat Remote, Ottawa, Canada Voice: +1.647.777.2635, Internal: (81) 32635, Alt: +1.613.693.0684x3545 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web