Commit 6f686d3d authored by Jeff Garzik's avatar Jeff Garzik

kernel/auditfilter: kill bogus uninit'd-var compiler warning

Kill this warning...

kernel/auditfilter.c: In function ‘audit_receive_filter’:
kernel/auditfilter.c:1213: warning: ‘ndw’ may be used uninitialized in this function
kernel/auditfilter.c:1213: warning: ‘ndp’ may be used uninitialized in this function

...with a simplification of the code.  audit_put_nd() can accept NULL
arguments, just like kfree().  It is cleaner to init two existing vars
to NULL, remove the redundant test variable 'putnd_needed' branches, and call
audit_put_nd() directly.

As a desired side effect, the warning goes away.
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent 49c13b51
...@@ -1210,8 +1210,8 @@ static inline int audit_add_rule(struct audit_entry *entry, ...@@ -1210,8 +1210,8 @@ static inline int audit_add_rule(struct audit_entry *entry,
struct audit_entry *e; struct audit_entry *e;
struct audit_field *inode_f = entry->rule.inode_f; struct audit_field *inode_f = entry->rule.inode_f;
struct audit_watch *watch = entry->rule.watch; struct audit_watch *watch = entry->rule.watch;
struct nameidata *ndp, *ndw; struct nameidata *ndp = NULL, *ndw = NULL;
int h, err, putnd_needed = 0; int h, err;
#ifdef CONFIG_AUDITSYSCALL #ifdef CONFIG_AUDITSYSCALL
int dont_count = 0; int dont_count = 0;
...@@ -1239,7 +1239,6 @@ static inline int audit_add_rule(struct audit_entry *entry, ...@@ -1239,7 +1239,6 @@ static inline int audit_add_rule(struct audit_entry *entry,
err = audit_get_nd(watch->path, &ndp, &ndw); err = audit_get_nd(watch->path, &ndp, &ndw);
if (err) if (err)
goto error; goto error;
putnd_needed = 1;
} }
mutex_lock(&audit_filter_mutex); mutex_lock(&audit_filter_mutex);
...@@ -1269,14 +1268,11 @@ static inline int audit_add_rule(struct audit_entry *entry, ...@@ -1269,14 +1268,11 @@ static inline int audit_add_rule(struct audit_entry *entry,
#endif #endif
mutex_unlock(&audit_filter_mutex); mutex_unlock(&audit_filter_mutex);
if (putnd_needed) audit_put_nd(ndp, ndw); /* NULL args OK */
audit_put_nd(ndp, ndw);
return 0; return 0;
error: error:
if (putnd_needed) audit_put_nd(ndp, ndw); /* NULL args OK */
audit_put_nd(ndp, ndw);
if (watch) if (watch)
audit_put_watch(watch); /* tmp watch, matches initial get */ audit_put_watch(watch); /* tmp watch, matches initial get */
return err; return err;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment