diff options
author | Immad Mir <mirimmad17@gmail.com> | 2023-06-23 19:14:01 +0530 |
---|---|---|
committer | Dave Kleikamp <dave.kleikamp@oracle.com> | 2023-06-23 09:00:13 -0500 |
commit | 47cfdc338d674d38f4b2f22b7612cc6a2763ba27 (patch) | |
tree | 5c6d4b0ab2b5eaddcaf170a8d2a450d1bd3ad29f /fs/jfs | |
parent | 4e302336d5ca1767a06beee7596a72d3bdc8d983 (diff) | |
download | lwn-47cfdc338d674d38f4b2f22b7612cc6a2763ba27.tar.gz lwn-47cfdc338d674d38f4b2f22b7612cc6a2763ba27.zip |
FS: JFS: Fix null-ptr-deref Read in txBegin
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>
Diffstat (limited to 'fs/jfs')
-rw-r--r-- | fs/jfs/namei.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/jfs/namei.c b/fs/jfs/namei.c index b29d68b5eec5..f370c7605120 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); |