"auid %u added an audit rule\n", loginuid); 
"auid=%u added an audit rule\n", loginuid); 
int audit_receive_filter(int type, int pid, int uid, int seq, void *data,							uid_t loginuid){	u32		   flags;	struct audit_entry *entry;	int		   err = 0;	switch (type) {	case AUDIT_LIST:		/* The *_rcu iterators not needed here because we are		   always called with audit_netlink_sem held. */		list_for_each_entry(entry, &audit_tsklist, list)			audit_send_reply(pid, seq, AUDIT_LIST, 0, 1,					 &entry->rule, sizeof(entry->rule));		list_for_each_entry(entry, &audit_entlist, list)			audit_send_reply(pid, seq, AUDIT_LIST, 0, 1,					 &entry->rule, sizeof(entry->rule));		list_for_each_entry(entry, &audit_extlist, list)			audit_send_reply(pid, seq, AUDIT_LIST, 0, 1,					 &entry->rule, sizeof(entry->rule));		audit_send_reply(pid, seq, AUDIT_LIST, 1, 1, NULL, 0);		break;	case AUDIT_ADD:		if (!(entry = kmalloc(sizeof(*entry), GFP_KERNEL)))			return -ENOMEM;		if (audit_copy_rule(&entry->rule, data)) {			kfree(entry);			return -EINVAL;		}		flags = entry->rule.flags;		if (!err && (flags & AUDIT_PER_TASK))			err = audit_add_rule(entry, &audit_tsklist);		if (!err && (flags & AUDIT_AT_ENTRY))			err = audit_add_rule(entry, &audit_entlist);		if (!err && (flags & AUDIT_AT_EXIT))			err = audit_add_rule(entry, &audit_extlist);		audit_log(NULL, AUDIT_CONFIG_CHANGE, 				"auid %u added an audit rule\n", loginuid);		break;	case AUDIT_DEL:		flags =((struct audit_rule *)data)->flags;		if (!err && (flags & AUDIT_PER_TASK))			err = audit_del_rule(data, &audit_tsklist);		if (!err && (flags & AUDIT_AT_ENTRY))			err = audit_del_rule(data, &audit_entlist);		if (!err && (flags & AUDIT_AT_EXIT))			err = audit_del_rule(data, &audit_extlist);		audit_log(NULL, AUDIT_CONFIG_CHANGE,				"auid %u removed an audit rule\n", loginuid);		break;	default:		return -EINVAL;	}	return err;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/bccf6ae083318ea08094d6ab185fdf7c49906b3a/auditsc.c/buggy/kernel/auditsc.c