reiserfs: Fix memory leak of journal device string
authorJan Kara <jack@suse.cz>
Thu, 12 Dec 2019 10:30:03 +0000 (11:30 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 5 Feb 2020 21:22:40 +0000 (21:22 +0000)
commit 5474ca7da6f34fa95e82edc747d5faa19cbdfb5c upstream.

When a filesystem is mounted with jdev mount option, we store the
journal device name in an allocated string in superblock. However we
fail to ever free that string. Fix it.

Reported-by: syzbot+1c6756baf4b16b94d2a6@syzkaller.appspotmail.com
Fixes: c3aa077648e1 ("reiserfs: Properly display mount options in /proc/mounts")
CC: stable@vger.kernel.org
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/reiserfs/super.c

index 3244037..d127af6 100644 (file)
@@ -629,6 +629,7 @@ static void reiserfs_put_super(struct super_block *s)
        reiserfs_write_unlock(s);
        mutex_destroy(&REISERFS_SB(s)->lock);
        destroy_workqueue(REISERFS_SB(s)->commit_wq);
+       kfree(REISERFS_SB(s)->s_jdev);
        kfree(s->s_fs_info);
        s->s_fs_info = NULL;
 }
@@ -2240,6 +2241,7 @@ error_unlocked:
                        kfree(qf_names[j]);
        }
 #endif
+       kfree(sbi->s_jdev);
        kfree(sbi);
 
        s->s_fs_info = NULL;