security/keys/trusted-keys/trusted_dcp.c:206:24: sparse: sparse: incorrect type in assignment (different base types)

From: kernel test robot
Date: Thu May 23 2024 - 18:49:03 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 6d69b6c12fce479fde7bc06f686212451688a102
commit: 2e8a0f40a39cc253002f21c54e1b5b995e5ec510 KEYS: trusted: Introduce NXP DCP-backed trusted keys
date: 2 weeks ago
config: arm-randconfig-r112-20240524 (https://download.01.org/0day-ci/archive/20240524/202405240610.fj53EK0q-lkp@xxxxxxxxx/config)
compiler: arm-linux-gnueabi-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20240524/202405240610.fj53EK0q-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202405240610.fj53EK0q-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
>> security/keys/trusted-keys/trusted_dcp.c:206:24: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] payload_len @@ got unsigned int @@
security/keys/trusted-keys/trusted_dcp.c:206:24: sparse: expected restricted __le32 [usertype] payload_len
security/keys/trusted-keys/trusted_dcp.c:206:24: sparse: got unsigned int

vim +206 security/keys/trusted-keys/trusted_dcp.c

179
180 static int trusted_dcp_seal(struct trusted_key_payload *p, char *datablob)
181 {
182 struct dcp_blob_fmt *b = (struct dcp_blob_fmt *)p->blob;
183 int blen, ret;
184
185 blen = calc_blob_len(p->key_len);
186 if (blen > MAX_BLOB_SIZE)
187 return -E2BIG;
188
189 b->fmt_version = DCP_BLOB_VERSION;
190 get_random_bytes(b->nonce, AES_KEYSIZE_128);
191 get_random_bytes(b->blob_key, AES_KEYSIZE_128);
192
193 ret = do_aead_crypto(p->key, b->payload, p->key_len, b->blob_key,
194 b->nonce, true);
195 if (ret) {
196 pr_err("Unable to encrypt blob payload: %i\n", ret);
197 return ret;
198 }
199
200 ret = encrypt_blob_key(b->blob_key);
201 if (ret) {
202 pr_err("Unable to encrypt blob key: %i\n", ret);
203 return ret;
204 }
205
> 206 b->payload_len = get_unaligned_le32(&p->key_len);
207 p->blob_len = blen;
208 return 0;
209 }
210

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki