From: syzbot <syzbot+b74150fd2ef40e716ca2@syzkaller.appspotmail.com>
To: linux-kernel@vger.kernel.org, syzkaller-bugs@googlegroups.com
Subject: Forwarded: [PATCH] ipc/mqueue: fix dentry refcount imbalance in prepare_open()
Date: Sat, 29 Nov 2025 23:11:24 -0800 [thread overview]
Message-ID: <692bee1c.a70a0220.d98e3.0167.GAE@google.com> (raw)
In-Reply-To: <692aef93.a70a0220.d98e3.015b.GAE@google.com>
For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org, syzkaller-bugs@googlegroups.com.
***
Subject: [PATCH] ipc/mqueue: fix dentry refcount imbalance in prepare_open()
Author: kartikey406@gmail.com
#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
When opening an existing message queue, prepare_open() does not increment
the dentry refcount, but end_creating() always calls dput(). This causes
a refcount imbalance that triggers a WARN_ON_ONCE in fast_dput() when the
file is later closed.
The creation path via vfs_mkobj() correctly increments the refcount, but
the "already exists" path was missing the corresponding dget().
Add the missing dget() call when opening an existing queue to balance the
dput() in end_creating().
Reported-by: syzbot+b74150fd2ef40e716ca2@syzkaller.appspot.com
Closes: https://syzkaller.appspot.com/bug?extid=b74150fd2ef40e716ca2
Signed-off-by: Deepanshu Kartikey <kartikey406@gmail.com>
---
ipc/mqueue.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/ipc/mqueue.c b/ipc/mqueue.c
index 328bcc3ee3ad..63ff2c322549 100644
--- a/ipc/mqueue.c
+++ b/ipc/mqueue.c
@@ -883,6 +883,7 @@ static int prepare_open(struct dentry *dentry, int oflag, int ro,
if ((oflag & O_ACCMODE) == (O_RDWR | O_WRONLY))
return -EINVAL;
acc = oflag2acc[oflag & O_ACCMODE];
+ dget(dentry);
return inode_permission(&nop_mnt_idmap, d_inode(dentry), acc);
}
--
2.43.0
next prev parent reply other threads:[~2025-11-30 7:11 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-29 13:05 [syzbot] [overlayfs?] WARNING in fast_dput syzbot
2025-11-29 21:58 ` Hillf Danton
2025-11-29 22:18 ` syzbot
2025-11-30 7:11 ` syzbot [this message]
2025-11-30 7:30 ` Forwarded: [PATCH] ipc/mqueue: fix dentry refcount imbalance in prepare_open() Al Viro
2025-11-30 8:46 ` Al Viro
2025-11-30 9:10 ` Al Viro
2025-11-30 10:52 ` [syzbot] [overlayfs?] WARNING in fast_dput Hillf Danton
2025-11-30 11:41 ` syzbot
2025-12-01 8:58 ` Amir Goldstein
2025-12-01 9:06 ` Al Viro
2025-12-01 9:07 ` Aleksandr Nogikh
2025-12-01 11:05 ` Amir Goldstein
2025-12-01 11:07 ` Aleksandr Nogikh
2025-12-01 12:11 ` Amir Goldstein
2025-12-01 10:18 ` syzbot
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=692bee1c.a70a0220.d98e3.0167.GAE@google.com \
--to=syzbot+b74150fd2ef40e716ca2@syzkaller.appspotmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=syzkaller-bugs@googlegroups.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.