[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Mon, 1 Jan 2024 10:25:25 +0800
From: Hillf Danton <hdanton@...a.com>
To: syzbot <syzbot+9b4adfed366b14496e7e@...kaller.appspotmail.com>
Cc: linux-kernel@...r.kernel.org,
syzkaller-bugs@...glegroups.com
Subject: Re: [syzbot] [dri?] [media?] memory leak in get_sg_table
On Sun, 31 Dec 2023 15:38:19 -0800
> HEAD commit: fbafc3e621c3 Merge tag 'for_linus' of git://git.kernel.org..
> git tree: upstream
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=15e8171ae80000
#syz test https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
--- x/drivers/dma-buf/udmabuf.c
+++ y/drivers/dma-buf/udmabuf.c
@@ -153,7 +153,12 @@ static int begin_cpu_udmabuf(struct dma_
int ret = 0;
if (!ubuf->sg) {
- ubuf->sg = get_sg_table(dev, buf, direction);
+ static DEFINE_MUTEX(lock);
+
+ mutex_lock(&lock);
+ if (!ubuf->sg)
+ ubuf->sg = get_sg_table(dev, buf, direction);
+ mutex_unlock(&lock);
if (IS_ERR(ubuf->sg)) {
ret = PTR_ERR(ubuf->sg);
ubuf->sg = NULL;
--
Powered by blists - more mailing lists