diff options
Diffstat (limited to 'kernel/auditfilter.c')
| -rw-r--r-- | kernel/auditfilter.c | 7 | 
1 files changed, 3 insertions, 4 deletions
diff --git a/kernel/auditfilter.c b/kernel/auditfilter.c index d75acb014ccd..42d99896e7a6 100644 --- a/kernel/auditfilter.c +++ b/kernel/auditfilter.c @@ -637,7 +637,7 @@ static struct audit_rule_data *audit_krule_to_data(struct audit_krule *krule)  	void *bufp;  	int i; -	data = kmalloc(sizeof(*data) + krule->buflen, GFP_KERNEL); +	data = kmalloc(struct_size(data, buf, krule->buflen), GFP_KERNEL);  	if (unlikely(!data))  		return NULL;  	memset(data, 0, sizeof(*data)); @@ -1092,7 +1092,7 @@ static void audit_list_rules(int seq, struct sk_buff_head *q)  				break;  			skb = audit_make_reply(seq, AUDIT_LIST_RULES, 0, 1,  					       data, -					       sizeof(*data) + data->buflen); +					       struct_size(data, buf, data->buflen));  			if (skb)  				skb_queue_tail(q, skb);  			kfree(data); @@ -1368,8 +1368,7 @@ int audit_filter(int msgtype, unsigned int listtype)  			case AUDIT_SUBJ_SEN:  			case AUDIT_SUBJ_CLR:  				if (f->lsm_rule) { -					security_task_getsecid_subj(current, -								    &sid); +					security_current_getsecid_subj(&sid);  					result = security_audit_rule_match(sid,  						   f->type, f->op, f->lsm_rule);  				}  | 
