tree:
https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git queue-4.4
head: 6a08a9e7fb1525fa296d810d200954f6c18d07a2
commit: a128d6484ea6c26f6266bd8d93c62346436bfd4e [12/14] squashfs: add more sanity checks
in inode lookup
config: arm64-randconfig-p001-20210215 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 7.5.0
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
#
https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git/c...
git remote add sashal-linux-stable
https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git
git fetch --no-tags sashal-linux-stable queue-4.4
git checkout a128d6484ea6c26f6266bd8d93c62346436bfd4e
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-7.5.0 make.cross ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
In file included from arch/arm64/include/asm/hw_breakpoint.h:20:0,
from arch/arm64/include/asm/processor.h:33,
from arch/arm64/include/asm/spinlock.h:21,
from include/linux/spinlock.h:87,
from include/linux/wait.h:8,
from include/linux/fs.h:5,
from fs/squashfs/export.c:38:
arch/arm64/include/asm/cpufeature.h: In function
'cpuid_feature_extract_field':
arch/arm64/include/asm/cpufeature.h:156:55: warning: signed and unsigned type in
conditional expression [-Wsign-compare]
cpuid_feature_extract_signed_field(features, field) :
^
In file included from fs/squashfs/export.c:44:0:
fs/squashfs/squashfs_fs.h: In function 'squashfs_block_size':
fs/squashfs/squashfs_fs.h:135:29: warning: signed and unsigned type in conditional
expression [-Wsign-compare]
return (size >> 25) ? -EIO : size;
^
fs/squashfs/export.c: In function 'squashfs_inode_lookup':
> fs/squashfs/export.c:63:36: warning: comparison between signed
and unsigned integer expressions [-Wsign-compare]
if (ino_num == 0 || (ino_num
- 1) >= msblk->inodes)
^~
fs/squashfs/export.c: In function 'squashfs_read_inode_lookup_table':
fs/squashfs/export.c:164:16: warning: comparison between signed and unsigned integer
expressions [-Wsign-compare]
for (n = 0; n < (indexes - 1); n++) {
^
--
In file included from arch/arm64/include/asm/hw_breakpoint.h:20:0,
from arch/arm64/include/asm/processor.h:33,
from arch/arm64/include/asm/spinlock.h:21,
from include/linux/spinlock.h:87,
from include/linux/wait.h:8,
from include/linux/fs.h:5,
from fs/squashfs/id.c:34:
arch/arm64/include/asm/cpufeature.h: In function
'cpuid_feature_extract_field':
arch/arm64/include/asm/cpufeature.h:156:55: warning: signed and unsigned type in
conditional expression [-Wsign-compare]
cpuid_feature_extract_signed_field(features, field) :
^
In file included from fs/squashfs/id.c:38:0:
fs/squashfs/squashfs_fs.h: In function 'squashfs_block_size':
fs/squashfs/squashfs_fs.h:135:29: warning: signed and unsigned type in conditional
expression [-Wsign-compare]
return (size >> 25) ? -EIO : size;
^
fs/squashfs/id.c: In function 'squashfs_read_id_index_table':
> fs/squashfs/id.c:109:16: warning: comparison between signed and
unsigned integer expressions [-Wsign-compare]
for (n = 0; n < (indexes - 1);
n++) {
^
vim +63 fs/squashfs/export.c
43
44 #include "squashfs_fs.h"
45 #include
"squashfs_fs_sb.h"
46 #include "squashfs_fs_i.h"
47 #include "squashfs.h"
48
49 /*
50 * Look-up inode number (ino) in table, returning the inode location.
51 */
52 static long long squashfs_inode_lookup(struct super_block *sb, int ino_num)
53 {
54 struct squashfs_sb_info *msblk = sb->s_fs_info;
55 int blk = SQUASHFS_LOOKUP_BLOCK(ino_num - 1);
56 int offset = SQUASHFS_LOOKUP_BLOCK_OFFSET(ino_num - 1);
57 u64 start;
58 __le64 ino;
59 int err;
60
61 TRACE("Entered squashfs_inode_lookup, inode_number = %d\n", ino_num);
62
63 if (ino_num == 0 || (ino_num - 1) >= msblk->inodes)
64 return -EINVAL;
65
66 start = le64_to_cpu(msblk->inode_lookup_table[blk]);
67
68 err = squashfs_read_metadata(sb, &ino, &start, &offset, sizeof(ino));
69 if (err < 0)
70 return err;
71
72 TRACE("squashfs_inode_lookup, inode = 0x%llx\n",
73 (u64) le64_to_cpu(ino));
74
75 return le64_to_cpu(ino);
76 }
77
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org