CC: [email protected]
CC: Linux Memory Management List <[email protected]>
TO: Mikulas Patocka <[email protected]>
CC: Mike Snitzer <[email protected]>
CC: Lukas Bulwahn <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git 
master
head:   52a0bcb60e40f30211cb5cbbb0f582ec4e91d896
commit: 09d85f8d8909ec8baa07479ba5777bbca24961f3 [7490/11541] dm integrity: 
introduce the "fix_hmac" argument
:::::: branch date: 12 hours ago
:::::: commit date: 12 days ago
config: mips-randconfig-m031-20210215 (attached as .config)
compiler: mipsel-linux-gcc (GCC) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

New smatch warnings:
drivers/md/dm-integrity.c:539 sb_mac() error: memcmp() 'result' too small (64 
vs 448)

Old smatch warnings:
drivers/md/dm-integrity.c:1749 integrity_metadata() warn: should 
'this_step_blocks << ic->sb->log2_sectors_per_block' be a 64 bit type?
drivers/md/dm-integrity.c:2483 do_journal_write() warn: should '(k - j) << 
ic->sb->log2_sectors_per_block' be a 64 bit type?
drivers/md/dm-integrity.c:3267 dm_integrity_status() warn: should '1 << 
ic->sb->log2_interleave_sectors' be a 64 bit type?
drivers/md/dm-integrity.c:3268 dm_integrity_status() warn: should '1 << 
ic->log2_buffer_sectors' be a 64 bit type?
drivers/md/dm-integrity.c:4039 dm_integrity_ctr() warn: impossible condition 
'(val >= (~0) * 1000 / 24) => (0-u32max >= 178956970625)'
drivers/md/dm-integrity.c:4442 dm_integrity_ctr() warn: missing error code 'r'

vim +/result +539 drivers/md/dm-integrity.c

1f9fc0b826119f Mikulas Patocka 2018-07-03  500  
09d85f8d8909ec Mikulas Patocka 2021-01-21  501  static int sb_mac(struct 
dm_integrity_c *ic, bool wr)
09d85f8d8909ec Mikulas Patocka 2021-01-21  502  {
09d85f8d8909ec Mikulas Patocka 2021-01-21  503          
SHASH_DESC_ON_STACK(desc, ic->journal_mac);
09d85f8d8909ec Mikulas Patocka 2021-01-21  504          int r;
09d85f8d8909ec Mikulas Patocka 2021-01-21  505          unsigned size = 
crypto_shash_digestsize(ic->journal_mac);
09d85f8d8909ec Mikulas Patocka 2021-01-21  506  
09d85f8d8909ec Mikulas Patocka 2021-01-21  507          if (sizeof(struct 
superblock) + size > 1 << SECTOR_SHIFT) {
09d85f8d8909ec Mikulas Patocka 2021-01-21  508                  
dm_integrity_io_error(ic, "digest is too long", -EINVAL);
09d85f8d8909ec Mikulas Patocka 2021-01-21  509                  return -EINVAL;
09d85f8d8909ec Mikulas Patocka 2021-01-21  510          }
09d85f8d8909ec Mikulas Patocka 2021-01-21  511  
09d85f8d8909ec Mikulas Patocka 2021-01-21  512          desc->tfm = 
ic->journal_mac;
09d85f8d8909ec Mikulas Patocka 2021-01-21  513  
09d85f8d8909ec Mikulas Patocka 2021-01-21  514          r = 
crypto_shash_init(desc);
09d85f8d8909ec Mikulas Patocka 2021-01-21  515          if (unlikely(r < 0)) {
09d85f8d8909ec Mikulas Patocka 2021-01-21  516                  
dm_integrity_io_error(ic, "crypto_shash_init", r);
09d85f8d8909ec Mikulas Patocka 2021-01-21  517                  return r;
09d85f8d8909ec Mikulas Patocka 2021-01-21  518          }
09d85f8d8909ec Mikulas Patocka 2021-01-21  519  
09d85f8d8909ec Mikulas Patocka 2021-01-21  520          r = 
crypto_shash_update(desc, (__u8 *)ic->sb, (1 << SECTOR_SHIFT) - size);
09d85f8d8909ec Mikulas Patocka 2021-01-21  521          if (unlikely(r < 0)) {
09d85f8d8909ec Mikulas Patocka 2021-01-21  522                  
dm_integrity_io_error(ic, "crypto_shash_update", r);
09d85f8d8909ec Mikulas Patocka 2021-01-21  523                  return r;
09d85f8d8909ec Mikulas Patocka 2021-01-21  524          }
09d85f8d8909ec Mikulas Patocka 2021-01-21  525  
09d85f8d8909ec Mikulas Patocka 2021-01-21  526          if (likely(wr)) {
09d85f8d8909ec Mikulas Patocka 2021-01-21  527                  r = 
crypto_shash_final(desc, (__u8 *)ic->sb + (1 << SECTOR_SHIFT) - size);
09d85f8d8909ec Mikulas Patocka 2021-01-21  528                  if (unlikely(r 
< 0)) {
09d85f8d8909ec Mikulas Patocka 2021-01-21  529                          
dm_integrity_io_error(ic, "crypto_shash_final", r);
09d85f8d8909ec Mikulas Patocka 2021-01-21  530                          return 
r;
09d85f8d8909ec Mikulas Patocka 2021-01-21  531                  }
09d85f8d8909ec Mikulas Patocka 2021-01-21  532          } else {
09d85f8d8909ec Mikulas Patocka 2021-01-21  533                  __u8 
result[HASH_MAX_DIGESTSIZE];
09d85f8d8909ec Mikulas Patocka 2021-01-21  534                  r = 
crypto_shash_final(desc, result);
09d85f8d8909ec Mikulas Patocka 2021-01-21  535                  if (unlikely(r 
< 0)) {
09d85f8d8909ec Mikulas Patocka 2021-01-21  536                          
dm_integrity_io_error(ic, "crypto_shash_final", r);
09d85f8d8909ec Mikulas Patocka 2021-01-21  537                          return 
r;
09d85f8d8909ec Mikulas Patocka 2021-01-21  538                  }
09d85f8d8909ec Mikulas Patocka 2021-01-21 @539                  if 
(memcmp((__u8 *)ic->sb + (1 << SECTOR_SHIFT) - size, result, size)) {
09d85f8d8909ec Mikulas Patocka 2021-01-21  540                          
dm_integrity_io_error(ic, "superblock mac", -EILSEQ);
09d85f8d8909ec Mikulas Patocka 2021-01-21  541                          return 
-EILSEQ;
09d85f8d8909ec Mikulas Patocka 2021-01-21  542                  }
09d85f8d8909ec Mikulas Patocka 2021-01-21  543          }
09d85f8d8909ec Mikulas Patocka 2021-01-21  544  
09d85f8d8909ec Mikulas Patocka 2021-01-21  545          return 0;
09d85f8d8909ec Mikulas Patocka 2021-01-21  546  }
09d85f8d8909ec Mikulas Patocka 2021-01-21  547  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to