diff options
author | Jingbo Xu <jefflexu@linux.alibaba.com> | 2022-10-21 04:31:53 +0200 |
---|---|---|
committer | Gao Xiang <hsiangkao@linux.alibaba.com> | 2022-11-10 02:53:20 +0100 |
commit | 39bfcb8138f6dc3375f23b1e62ccfc7c0d83295d (patch) | |
tree | 158096b93d6c55fa5ab086c824a676a44b52284e /fs/utimes.c | |
parent | erofs: get correct count for unmapped range in fscache mode (diff) | |
download | linux-39bfcb8138f6dc3375f23b1e62ccfc7c0d83295d.tar.xz linux-39bfcb8138f6dc3375f23b1e62ccfc7c0d83295d.zip |
erofs: fix use-after-free of fsid and domain_id string
When erofs instance is remounted with fsid or domain_id mount option
specified, the original fsid and domain_id string pointer in sbi->opt
is directly overridden with the fsid and domain_id string in the new
fs_context, without freeing the original fsid and domain_id string.
What's worse, when the new fsid and domain_id string is transferred to
sbi, they are not reset to NULL in fs_context, and thus they are freed
when remount finishes, while sbi is still referring to these strings.
Reconfiguration for fsid and domain_id seems unusual. Thus clarify this
restriction explicitly and dump a warning when users are attempting to
do this.
Besides, to fix the use-after-free issue, move fsid and domain_id from
erofs_mount_opts to outside.
Fixes: c6be2bd0a5dd ("erofs: register fscache volume")
Fixes: 8b7adf1dff3d ("erofs: introduce fscache-based domain")
Signed-off-by: Jingbo Xu <jefflexu@linux.alibaba.com>
Reviewed-by: Jia Zhu <zhujia.zj@bytedance.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Link: https://lore.kernel.org/r/20221021023153.1330-1-jefflexu@linux.alibaba.com
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Diffstat (limited to 'fs/utimes.c')
0 files changed, 0 insertions, 0 deletions