All of lore.kernel.org
 help / color / mirror / Atom feed
* [linux-next:master 7490/11541] drivers/md/dm-integrity.c:539 sb_mac() error: memcmp() 'result' too small (64 vs 448)
@ 2021-02-15 21:42 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-02-15 21:42 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 5356 bytes --]

CC: kbuild-all(a)lists.01.org
CC: Linux Memory Management List <linux-mm@kvack.org>
TO: Mikulas Patocka <mpatocka@redhat.com>
CC: Mike Snitzer <snitzer@redhat.com>
CC: Lukas Bulwahn <lukas.bulwahn@gmail.com>

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 <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

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/kbuild-all@lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 34532 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-02-15 21:42 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-15 21:42 [linux-next:master 7490/11541] drivers/md/dm-integrity.c:539 sb_mac() error: memcmp() 'result' too small (64 vs 448) kernel test robot

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.