]> Pileus Git - ~andy/linux/blobdiff - kernel/auditfilter.c
audit: Send replies in the proper network namespace.
[~andy/linux] / kernel / auditfilter.c
index a5e3d73d73e4831fc7da48da41862870de537bcf..e8d1c7c515d734b118f337f09ccdd8c7db279c13 100644 (file)
@@ -30,6 +30,7 @@
 #include <linux/slab.h>
 #include <linux/security.h>
 #include <net/net_namespace.h>
+#include <net/sock.h>
 #include "audit.h"
 
 /*
@@ -1069,8 +1070,10 @@ int audit_rule_change(int type, __u32 portid, int seq, void *data,
  * @portid: target portid for netlink audit messages
  * @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;
@@ -1084,7 +1087,7 @@ 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(current->nsproxy->net_ns);
+       dest->net = get_net(net);
        dest->portid = portid;
        skb_queue_head_init(&dest->q);