All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: "Luís Henriques" <lhenriques@suse.de>,
	"Theodore Ts'o" <tytso@mit.edu>,
	"Andreas Dilger" <adilger.kernel@dilger.ca>
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
	wenqingliu0120@gmail.com, linux-ext4@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	"Luís Henriques" <lhenriques@suse.de>,
	"Baokun Li" <libaokun1@huawei.com>
Subject: Re: [PATCH v3] ext4: fix bug in extents parsing when eh_entries == 0 and eh_depth > 0
Date: Sat, 13 Aug 2022 04:11:49 +0800	[thread overview]
Message-ID: <202208130421.BZpzWWRK-lkp@intel.com> (raw)
In-Reply-To: <20220812141329.9501-1-lhenriques@suse.de>

Hi "Luís,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on tytso-ext4/dev]
[also build test ERROR on linus/master v5.19 next-20220812]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Lu-s-Henriques/ext4-fix-bug-in-extents-parsing-when-eh_entries-0-and-eh_depth-0/20220812-221443
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git dev
config: arm64-buildonly-randconfig-r002-20220812 (https://download.01.org/0day-ci/archive/20220813/202208130421.BZpzWWRK-lkp@intel.com/config)
compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project 5f1c7e2cc5a3c07cbc2412e851a7283c1841f520)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install arm64 cross compiling tool for clang build
        # apt-get install binutils-aarch64-linux-gnu
        # https://github.com/intel-lab-lkp/linux/commit/ef3617646de6e939d29961099c7c8adcaa0d9fd9
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Lu-s-Henriques/ext4-fix-bug-in-extents-parsing-when-eh_entries-0-and-eh_depth-0/20220812-221443
        git checkout ef3617646de6e939d29961099c7c8adcaa0d9fd9
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash fs/ext4/

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

>> fs/ext4/extents.c:463:41: error: use of undeclared identifier 'eh_depth'; did you mean 'ext_depth'?
           if (unlikely((eh->eh_entries == 0) && (eh_depth > 0))) {
                                                  ^~~~~~~~
                                                  ext_depth
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   fs/ext4/ext4_extents.h:192:30: note: 'ext_depth' declared here
   static inline unsigned short ext_depth(struct inode *inode)
                                ^
   1 error generated.


vim +463 fs/ext4/extents.c

   434	
   435	static int __ext4_ext_check(const char *function, unsigned int line,
   436				    struct inode *inode, struct ext4_extent_header *eh,
   437				    int depth, ext4_fsblk_t pblk, ext4_lblk_t lblk)
   438	{
   439		const char *error_msg;
   440		int max = 0, err = -EFSCORRUPTED;
   441	
   442		if (unlikely(eh->eh_magic != EXT4_EXT_MAGIC)) {
   443			error_msg = "invalid magic";
   444			goto corrupted;
   445		}
   446		if (unlikely(le16_to_cpu(eh->eh_depth) != depth)) {
   447			error_msg = "unexpected eh_depth";
   448			goto corrupted;
   449		}
   450		if (unlikely(eh->eh_max == 0)) {
   451			error_msg = "invalid eh_max";
   452			goto corrupted;
   453		}
   454		max = ext4_ext_max_entries(inode, depth);
   455		if (unlikely(le16_to_cpu(eh->eh_max) > max)) {
   456			error_msg = "too large eh_max";
   457			goto corrupted;
   458		}
   459		if (unlikely(le16_to_cpu(eh->eh_entries) > le16_to_cpu(eh->eh_max))) {
   460			error_msg = "invalid eh_entries";
   461			goto corrupted;
   462		}
 > 463		if (unlikely((eh->eh_entries == 0) && (eh_depth > 0))) {
   464			error_msg = "eh_entries is 0 but eh_depth is > 0";
   465			goto corrupted;
   466		}
   467		if (!ext4_valid_extent_entries(inode, eh, lblk, &pblk, depth)) {
   468			error_msg = "invalid extent entries";
   469			goto corrupted;
   470		}
   471		if (unlikely(depth > 32)) {
   472			error_msg = "too large eh_depth";
   473			goto corrupted;
   474		}
   475		/* Verify checksum on non-root extent tree nodes */
   476		if (ext_depth(inode) != depth &&
   477		    !ext4_extent_block_csum_verify(inode, eh)) {
   478			error_msg = "extent tree corrupted";
   479			err = -EFSBADCRC;
   480			goto corrupted;
   481		}
   482		return 0;
   483	
   484	corrupted:
   485		ext4_error_inode_err(inode, function, line, 0, -err,
   486				     "pblk %llu bad header/extent: %s - magic %x, "
   487				     "entries %u, max %u(%u), depth %u(%u)",
   488				     (unsigned long long) pblk, error_msg,
   489				     le16_to_cpu(eh->eh_magic),
   490				     le16_to_cpu(eh->eh_entries),
   491				     le16_to_cpu(eh->eh_max),
   492				     max, le16_to_cpu(eh->eh_depth), depth);
   493		return err;
   494	}
   495	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

      reply	other threads:[~2022-08-12 20:12 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-12 14:13 [PATCH v3] ext4: fix bug in extents parsing when eh_entries == 0 and eh_depth > 0 Luís Henriques
2022-08-12 20:11 ` kernel test robot [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202208130421.BZpzWWRK-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=adilger.kernel@dilger.ca \
    --cc=kbuild-all@lists.01.org \
    --cc=lhenriques@suse.de \
    --cc=libaokun1@huawei.com \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=tytso@mit.edu \
    --cc=wenqingliu0120@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.