From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, teroincn@gmail.com,
Richard Guy Briggs <rgb@redhat.com>,
Paul Moore <paul@paul-moore.com>,
Wen Yang <wenyang@linux.alibaba.com>
Subject: [PATCH 4.9 35/35] audit: fix a net reference leak in audit_list_rules_send()
Date: Mon, 5 Apr 2021 10:54:10 +0200 [thread overview]
Message-ID: <20210405085019.983552878@linuxfoundation.org> (raw)
In-Reply-To: <20210405085018.871387942@linuxfoundation.org>
From: Paul Moore <paul@paul-moore.com>
commit 3054d06719079388a543de6adb812638675ad8f5 upstream.
If audit_list_rules_send() fails when trying to create a new thread
to send the rules it also fails to cleanup properly, leaking a
reference to a net structure. This patch fixes the error patch and
renames audit_send_list() to audit_send_list_thread() to better
match its cousin, audit_send_reply_thread().
Reported-by: teroincn@gmail.com
Reviewed-by: Richard Guy Briggs <rgb@redhat.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
Cc: <stable@vger.kernel.org> # 4.9.x
Signed-off-by: Wen Yang <wenyang@linux.alibaba.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
kernel/audit.c | 2 +-
kernel/audit.h | 2 +-
kernel/auditfilter.c | 13 ++++++-------
3 files changed, 8 insertions(+), 9 deletions(-)
--- a/kernel/audit.c
+++ b/kernel/audit.c
@@ -535,7 +535,7 @@ static int kauditd_thread(void *dummy)
return 0;
}
-int audit_send_list(void *_dest)
+int audit_send_list_thread(void *_dest)
{
struct audit_netlink_list *dest = _dest;
struct sk_buff *skb;
--- a/kernel/audit.h
+++ b/kernel/audit.h
@@ -245,7 +245,7 @@ struct audit_netlink_list {
struct sk_buff_head q;
};
-int audit_send_list(void *);
+int audit_send_list_thread(void *);
struct audit_net {
struct sock *nlsk;
--- a/kernel/auditfilter.c
+++ b/kernel/auditfilter.c
@@ -1139,10 +1139,8 @@ int audit_rule_change(int type, __u32 po
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;
/* We can't just spew out the rules here because we might fill
* the available socket buffer space and deadlock waiting for
@@ -1150,10 +1148,10 @@ int audit_list_rules_send(struct sk_buff
* happen if we're actually running in the context of auditctl
* trying to _send_ the stuff */
- dest = kmalloc(sizeof(struct audit_netlink_list), GFP_KERNEL);
+ dest = kmalloc(sizeof(*dest), GFP_KERNEL);
if (!dest)
return -ENOMEM;
- dest->net = get_net(net);
+ dest->net = get_net(sock_net(NETLINK_CB(request_skb).sk));
dest->portid = portid;
skb_queue_head_init(&dest->q);
@@ -1161,14 +1159,15 @@ int audit_list_rules_send(struct sk_buff
audit_list_rules(portid, seq, &dest->q);
mutex_unlock(&audit_filter_mutex);
- tsk = kthread_run(audit_send_list, dest, "audit_send_list");
+ tsk = kthread_run(audit_send_list_thread, dest, "audit_send_list");
if (IS_ERR(tsk)) {
skb_queue_purge(&dest->q);
+ put_net(dest->net);
kfree(dest);
- err = PTR_ERR(tsk);
+ return PTR_ERR(tsk);
}
- return err;
+ return 0;
}
int audit_comparator(u32 left, u32 op, u32 right)
next prev parent reply other threads:[~2021-04-05 8:58 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-05 8:53 [PATCH 4.9 00/35] 4.9.265-rc1 review Greg Kroah-Hartman
2021-04-05 8:53 ` [PATCH 4.9 01/35] selinux: vsock: Set SID for socket returned by accept() Greg Kroah-Hartman
2021-04-05 8:53 ` [PATCH 4.9 02/35] ipv6: weaken the v4mapped source check Greg Kroah-Hartman
2021-04-05 8:53 ` [PATCH 4.9 03/35] ext4: fix bh ref count on error paths Greg Kroah-Hartman
2021-04-05 8:53 ` [PATCH 4.9 04/35] rpc: fix NULL dereference on kmalloc failure Greg Kroah-Hartman
2021-04-05 8:53 ` [PATCH 4.9 05/35] ASoC: rt5640: Fix dac- and adc- vol-tlv values being off by a factor of 10 Greg Kroah-Hartman
2021-04-05 8:53 ` [PATCH 4.9 06/35] ASoC: rt5651: " Greg Kroah-Hartman
2021-04-05 8:53 ` [PATCH 4.9 07/35] ASoC: sgtl5000: set DAP_AVC_CTRL register to correct default value on probe Greg Kroah-Hartman
2021-04-05 8:53 ` [PATCH 4.9 08/35] powerpc: Force inlining of cpu_has_feature() to avoid build failure Greg Kroah-Hartman
2021-04-05 8:53 ` [PATCH 4.9 09/35] vhost: Fix vhost_vq_reset() Greg Kroah-Hartman
2021-04-05 8:53 ` [PATCH 4.9 10/35] scsi: st: Fix a use after free in st_open() Greg Kroah-Hartman
2021-04-05 8:53 ` [PATCH 4.9 11/35] scsi: qla2xxx: Fix broken #endif placement Greg Kroah-Hartman
2021-04-05 8:53 ` [PATCH 4.9 12/35] staging: comedi: cb_pcidas: fix request_irq() warn Greg Kroah-Hartman
2021-04-05 8:53 ` [PATCH 4.9 13/35] staging: comedi: cb_pcidas64: " Greg Kroah-Hartman
2021-04-05 8:53 ` [PATCH 4.9 14/35] ASoC: rt5659: Update MCLK rate in set_sysclk() Greg Kroah-Hartman
2021-04-05 8:53 ` [PATCH 4.9 15/35] ext4: do not iput inode under running transaction in ext4_rename() Greg Kroah-Hartman
2021-04-05 8:53 ` [PATCH 4.9 16/35] appletalk: Fix skb allocation size in loopback case Greg Kroah-Hartman
2021-04-05 8:53 ` [PATCH 4.9 17/35] net: wan/lmc: unregister device when no matching device is found Greg Kroah-Hartman
2021-04-05 8:53 ` [PATCH 4.9 18/35] bpf: Remove MTU check in __bpf_skb_max_len Greg Kroah-Hartman
2021-04-05 8:53 ` [PATCH 4.9 19/35] ALSA: usb-audio: Apply sample rate quirk to Logitech Connect Greg Kroah-Hartman
2021-04-05 8:53 ` [PATCH 4.9 20/35] ALSA: hda/realtek: call alc_update_headset_mode() in hp_automute_hook Greg Kroah-Hartman
2021-04-05 8:53 ` [PATCH 4.9 21/35] tracing: Fix stack trace event size Greg Kroah-Hartman
2021-04-05 8:53 ` [PATCH 4.9 22/35] mm: fix race by making init_zero_pfn() early_initcall Greg Kroah-Hartman
2021-04-05 8:53 ` [PATCH 4.9 23/35] reiserfs: update reiserfs_xattrs_initialized() condition Greg Kroah-Hartman
2021-04-05 8:53 ` [PATCH 4.9 24/35] pinctrl: rockchip: fix restore error in resume Greg Kroah-Hartman
2021-04-05 8:54 ` [PATCH 4.9 25/35] extcon: Fix error handling in extcon_dev_register Greg Kroah-Hartman
2021-04-05 8:54 ` [PATCH 4.9 26/35] firewire: nosy: Fix a use-after-free bug in nosy_ioctl() Greg Kroah-Hartman
2021-04-05 8:54 ` [PATCH 4.9 27/35] USB: quirks: ignore remote wake-up on Fibocom L850-GL LTE modem Greg Kroah-Hartman
2021-04-05 8:54 ` [PATCH 4.9 28/35] usb: xhci-mtk: fix broken streams issue on 0.96 xHCI Greg Kroah-Hartman
2021-04-05 8:54 ` [PATCH 4.9 29/35] cdc-acm: fix BREAK rx code path adding necessary calls Greg Kroah-Hartman
2021-04-05 8:54 ` [PATCH 4.9 30/35] USB: cdc-acm: downgrade message to debug Greg Kroah-Hartman
2021-04-05 8:54 ` [PATCH 4.9 31/35] USB: cdc-acm: fix use-after-free after probe failure Greg Kroah-Hartman
2021-04-05 8:54 ` [PATCH 4.9 32/35] staging: rtl8192e: Fix incorrect source in memcpy() Greg Kroah-Hartman
2021-04-05 8:54 ` [PATCH 4.9 33/35] staging: rtl8192e: Change state information from u16 to u8 Greg Kroah-Hartman
2021-04-05 8:54 ` [PATCH 4.9 34/35] audit: fix a net reference leak in audit_send_reply() Greg Kroah-Hartman
2021-04-05 8:54 ` Greg Kroah-Hartman [this message]
2021-04-05 17:27 ` [PATCH 4.9 00/35] 4.9.265-rc1 review Florian Fainelli
2021-04-05 17:56 ` Guenter Roeck
2021-04-05 23:51 ` Guenter Roeck
2021-04-06 2:22 ` Guenter Roeck
2021-04-06 2:36 ` Guenter Roeck
2021-04-07 10:18 ` Greg Kroah-Hartman
2021-04-06 0:29 ` Shuah Khan
2021-04-06 7:40 ` Naresh Kamboju
2021-04-07 8:21 ` Jon Hunter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210405085019.983552878@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=paul@paul-moore.com \
--cc=rgb@redhat.com \
--cc=stable@vger.kernel.org \
--cc=teroincn@gmail.com \
--cc=wenyang@linux.alibaba.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.