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
prev parent 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.