diff options
author | Yin Xiujiang <yinxiujiang@kylinos.cn> | 2021-12-06 10:40:45 +0800 |
---|---|---|
committer | Konstantin Komarov <almaz.alexandrovich@paragon-software.com> | 2022-11-14 19:50:29 +0300 |
commit | ecfbd57cf9c5ca225184ae266ce44ae473792132 (patch) | |
tree | 282e00991624f3b62f73124922db91f12aab855e /fs/Kconfig.binfmt | |
parent | 658015167a8432b88f5d032e9d85d8fd50e5bf2c (diff) | |
download | linux-stable-ecfbd57cf9c5ca225184ae266ce44ae473792132.tar.gz linux-stable-ecfbd57cf9c5ca225184ae266ce44ae473792132.tar.bz2 linux-stable-ecfbd57cf9c5ca225184ae266ce44ae473792132.zip |
fs/ntfs3: Fix slab-out-of-bounds in r_page
When PAGE_SIZE is 64K, if read_log_page is called by log_read_rst for
the first time, the size of *buffer would be equal to
DefaultLogPageSize(4K).But for *buffer operations like memcpy,
if the memory area size(n) which being assigned to buffer is larger
than 4K (log->page_size(64K) or bytes(64K-page_off)), it will cause
an out of boundary error.
Call trace:
[...]
kasan_report+0x44/0x130
check_memory_region+0xf8/0x1a0
memcpy+0xc8/0x100
ntfs_read_run_nb+0x20c/0x460
read_log_page+0xd0/0x1f4
log_read_rst+0x110/0x75c
log_replay+0x1e8/0x4aa0
ntfs_loadlog_and_replay+0x290/0x2d0
ntfs_fill_super+0x508/0xec0
get_tree_bdev+0x1fc/0x34c
[...]
Fix this by setting variable r_page to NULL in log_read_rst.
Signed-off-by: Yin Xiujiang <yinxiujiang@kylinos.cn>
Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
Diffstat (limited to 'fs/Kconfig.binfmt')
0 files changed, 0 insertions, 0 deletions