summary refs log tree commit diff
path: root/fs
diff options
context:
space:
mode:
authorImmad Mir <mirimmad17@gmail.com>2023-06-23 19:14:01 +0530
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-07-27 08:50:33 +0200
commit3e5eb6c5ecd8ddb9cfea751cf30f9e23eac97ca3 (patch)
tree476242b0a89795a26f5a57b1baa6ac4112891fc6 /fs
parentda0a7c697595d37a48d2f29e1a8b44f42a162908 (diff)
downloadlinux-3e5eb6c5ecd8ddb9cfea751cf30f9e23eac97ca3.tar.gz
FS: JFS: Fix null-ptr-deref Read in txBegin
[ Upstream commit 47cfdc338d674d38f4b2f22b7612cc6a2763ba27 ]

 Syzkaller reported an issue where txBegin may be called
 on a superblock in a read-only mounted filesystem which leads
 to NULL pointer deref. This could be solved by checking if
 the filesystem is read-only before calling txBegin, and returning
 with appropiate error code.

Reported-By: syzbot+f1faa20eec55e0c8644c@syzkaller.appspotmail.com
Link: https://syzkaller.appspot.com/bug?id=be7e52c50c5182cc09a09ea6fc456446b2039de3

Signed-off-by: Immad Mir <mirimmad17@gmail.com>
Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/jfs/namei.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/jfs/namei.c b/fs/jfs/namei.c
index 4fbbf88435e6..b3a0fe0649c4 100644
--- a/fs/jfs/namei.c
+++ b/fs/jfs/namei.c
@@ -799,6 +799,11 @@ static int jfs_link(struct dentry *old_dentry,
 	if (rc)
 		goto out;
 
+	if (isReadOnly(ip)) {
+		jfs_error(ip->i_sb, "read-only filesystem\n");
+		return -EROFS;
+	}
+
 	tid = txBegin(ip->i_sb, 0);
 
 	mutex_lock_nested(&JFS_IP(dir)->commit_mutex, COMMIT_MUTEX_PARENT);