[PATCH] erofs: fix null-ptr-deref caused by erofs_xattr_prefixes_init
Gao Xiang
hsiangkao at linux.alibaba.com
Mon May 15 19:30:00 AEST 2023
On 2023/5/15 02:21, Jingbo Xu wrote:
> Fragments and dedup share one feature bit, and thus packed inode may not
please use the formal name "dedupe".
> exist when fragment feature bit (dedup feature bit exactly) is set, e.g.
^ dedupe
> when deduplication feature is in use while fragments feature is not. In
> this case, sbi->packed_inode could be NULL while fragments feature bit
> is set.
>
> Fix this by accessing packed inode only when it exists.
>
> Reported-by: syzbot+902d5a9373ae8f748a94 at syzkaller.appspotmail.com
> Link: https://syzkaller.appspot.com/bug?extid=902d5a9373ae8f748a94
> Fixes: 9e382914617c ("erofs: add helpers to load long xattr name prefixes")
> Signed-off-by: Jingbo Xu <jefflexu at linux.alibaba.com>
> ---
> fs/erofs/xattr.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/erofs/xattr.c b/fs/erofs/xattr.c
> index cd80499351e0..bbfe7ce170d2 100644
> --- a/fs/erofs/xattr.c
> +++ b/fs/erofs/xattr.c
> @@ -675,7 +675,7 @@ int erofs_xattr_prefixes_init(struct super_block *sb)
> if (!pfs)
> return -ENOMEM;
>
> - if (erofs_sb_has_fragments(sbi))
> + if (sbi->packed_inode)
> buf.inode = sbi->packed_inode;
> else
> erofs_init_metabuf(&buf, sb);
More information about the Linux-erofs
mailing list