diff options
Diffstat (limited to 'kernel/auditfilter.c')
| -rw-r--r-- | kernel/auditfilter.c | 8 | 
1 files changed, 7 insertions, 1 deletions
| diff --git a/kernel/auditfilter.c b/kernel/auditfilter.c index 6bd4a90d199..f7aee8be7fb 100644 --- a/kernel/auditfilter.c +++ b/kernel/auditfilter.c @@ -423,7 +423,7 @@ static struct audit_entry *audit_data_to_entry(struct audit_rule_data *data,  		f->lsm_rule = NULL;  		/* Support legacy tests for a valid loginuid */ -		if ((f->type == AUDIT_LOGINUID) && (f->val == 4294967295)) { +		if ((f->type == AUDIT_LOGINUID) && (f->val == ~0U)) {  			f->type = AUDIT_LOGINUID_SET;  			f->val = 0;  		} @@ -865,6 +865,12 @@ static inline int audit_add_rule(struct audit_entry *entry)  		err = audit_add_watch(&entry->rule, &list);  		if (err) {  			mutex_unlock(&audit_filter_mutex); +			/* +			 * normally audit_add_tree_rule() will free it +			 * on failure +			 */ +			if (tree) +				audit_put_tree(tree);  			goto error;  		}  	} | 
