From nobody Mon Feb 9 23:44:06 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BA1B5C7EE24 for ; Mon, 15 May 2023 09:24:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230001AbjEOJY1 (ORCPT ); Mon, 15 May 2023 05:24:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56058 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239176AbjEOJYF (ORCPT ); Mon, 15 May 2023 05:24:05 -0400 Received: from out30-98.freemail.mail.aliyun.com (out30-98.freemail.mail.aliyun.com [115.124.30.98]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7E3B319B7 for ; Mon, 15 May 2023 02:21:51 -0700 (PDT) X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R191e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018045170;MF=jefflexu@linux.alibaba.com;NM=1;PH=DS;RN=5;SR=0;TI=SMTPD_---0Vifybmh_1684142508; Received: from localhost(mailfrom:jefflexu@linux.alibaba.com fp:SMTPD_---0Vifybmh_1684142508) by smtp.aliyun-inc.com; Mon, 15 May 2023 17:21:48 +0800 From: Jingbo Xu To: xiang@kernel.org, chao@kernel.org, huyue2@coolpad.com, linux-erofs@lists.ozlabs.org Cc: linux-kernel@vger.kernel.org Subject: [PATCH] erofs: fix null-ptr-deref caused by erofs_xattr_prefixes_init Date: Mon, 15 May 2023 17:21:48 +0800 Message-Id: <20230515092148.1485-1-jefflexu@linux.alibaba.com> X-Mailer: git-send-email 2.19.1.6.gb485710b MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Fragments and dedup share one feature bit, and thus packed inode may not exist when fragment feature bit (dedup feature bit exactly) is set, e.g. 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@syzkaller.appspotmail.com Link: https://syzkaller.appspot.com/bug?extid=3D902d5a9373ae8f748a94 Fixes: 9e382914617c ("erofs: add helpers to load long xattr name prefixes") Signed-off-by: Jingbo Xu --- 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; =20 - if (erofs_sb_has_fragments(sbi)) + if (sbi->packed_inode) buf.inode =3D sbi->packed_inode; else erofs_init_metabuf(&buf, sb); --=20 2.19.1.6.gb485710b