diff options
Diffstat (limited to 'kernel/auditsc.c')
| -rw-r--r-- | kernel/auditsc.c | 12 | 
1 files changed, 9 insertions, 3 deletions
diff --git a/kernel/auditsc.c b/kernel/auditsc.c index addeed3df15d..21d2fa815e78 100644 --- a/kernel/auditsc.c +++ b/kernel/auditsc.c @@ -143,6 +143,8 @@ static const struct audit_nfcfgop_tab audit_nfcfgs[] = {  	{ AUDIT_NFT_OP_OBJ_RESET,		"nft_reset_obj"		   },  	{ AUDIT_NFT_OP_FLOWTABLE_REGISTER,	"nft_register_flowtable"   },  	{ AUDIT_NFT_OP_FLOWTABLE_UNREGISTER,	"nft_unregister_flowtable" }, +	{ AUDIT_NFT_OP_SETELEM_RESET,		"nft_reset_setelem"        }, +	{ AUDIT_NFT_OP_RULE_RESET,		"nft_reset_rule"           },  	{ AUDIT_NFT_OP_INVALID,			"nft_invalid"		   },  }; @@ -880,7 +882,8 @@ static void audit_filter_syscall(struct task_struct *tsk,   */  static int audit_filter_inode_name(struct task_struct *tsk,  				   struct audit_names *n, -				   struct audit_context *ctx) { +				   struct audit_context *ctx) +{  	int h = audit_hash_ino((u32)n->ino);  	struct list_head *list = &audit_inode_hash[h]; @@ -1064,7 +1067,8 @@ int audit_alloc(struct task_struct *tsk)  		return 0;  	} -	if (!(context = audit_alloc_context(state))) { +	context = audit_alloc_context(state); +	if (!context) {  		kfree(key);  		audit_log_lost("out of memory in audit_alloc");  		return -ENOMEM; @@ -2124,7 +2128,7 @@ retry:  	d = dentry;  	rcu_read_lock();  	seq = read_seqbegin(&rename_lock); -	for(;;) { +	for (;;) {  		struct inode *inode = d_backing_inode(d);  		if (inode && unlikely(inode->i_fsnotify_marks)) { @@ -2456,6 +2460,8 @@ void __audit_inode_child(struct inode *parent,  		}  	} +	cond_resched(); +  	/* is there a matching child entry? */  	list_for_each_entry(n, &context->names_list, list) {  		/* can only match entries that have a name */  |