X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=kernel%2Fauditfilter.c;h=92062fd6cc8cec4deff933c04848782bfdcded11;hb=81250437a55044edf16d2cc484da4fb837489317;hp=14a78cca384edb9cf8f36dc3f7fb5340c267c623;hpb=9df5a9b02fb59a4148bc93e0d20731c72aaffa5f;p=~andy%2Flinux diff --git a/kernel/auditfilter.c b/kernel/auditfilter.c index 14a78cca384..92062fd6cc8 100644 --- a/kernel/auditfilter.c +++ b/kernel/auditfilter.c @@ -29,6 +29,8 @@ #include #include #include +#include +#include #include "audit.h" /* @@ -1065,11 +1067,13 @@ int audit_rule_change(int type, __u32 portid, int seq, void *data, /** * audit_list_rules_send - list the audit rules - * @portid: target portid for netlink audit messages + * @request_skb: skb of request we are replying to (used to target the reply) * @seq: netlink audit message sequence (serial) number */ -int audit_list_rules_send(__u32 portid, int seq) +int audit_list_rules_send(struct sk_buff *request_skb, int seq) { + u32 portid = NETLINK_CB(request_skb).portid; + struct net *net = sock_net(NETLINK_CB(request_skb).sk); struct task_struct *tsk; struct audit_netlink_list *dest; int err = 0; @@ -1083,8 +1087,8 @@ int audit_list_rules_send(__u32 portid, int seq) dest = kmalloc(sizeof(struct audit_netlink_list), GFP_KERNEL); if (!dest) return -ENOMEM; + dest->net = get_net(net); dest->portid = portid; - dest->pid = task_pid_vnr(current); skb_queue_head_init(&dest->q); mutex_lock(&audit_filter_mutex);