From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============6696521643379850516==" MIME-Version: 1.0 From: kbuild test robot To: kbuild-all@lists.01.org Subject: [jss-tpmdd:master 16/16] security/keys/trusted-keys/trusted_tpm1.c:201:19: sparse: sparse: cast to restricted __be32 Date: Sat, 12 Oct 2019 09:35:26 +0800 Message-ID: <201910120922.qWSWDM0s%lkp@intel.com> List-Id: --===============6696521643379850516== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Sumit, First bad commit (maybe !=3D root cause): tree: git://git.infradead.org/users/jjs/linux-tpmdd master head: 2feacb45cc29cf4fbb3783372ca096ea4d4fd761 commit: 2feacb45cc29cf4fbb3783372ca096ea4d4fd761 [16/16] KEYS: trusted: Cre= ate trusted keys subsystem reproduce: # apt-get install sparse # sparse version: v0.6.1-rc1-42-g38eda53-dirty git checkout 2feacb45cc29cf4fbb3783372ca096ea4d4fd761 make ARCH=3Dx86_64 allmodconfig make C=3D1 CF=3D'-fdiagnostic-prefix -D__CHECK_ENDIAN__' If you fix the issue, kindly add following tag Reported-by: kbuild test robot sparse warnings: (new ones prefixed by >>) >> security/keys/trusted-keys/trusted_tpm1.c:201:19: sparse: sparse: cast t= o restricted __be32 >> security/keys/trusted-keys/trusted_tpm1.c:201:19: sparse: sparse: cast t= o restricted __be32 >> security/keys/trusted-keys/trusted_tpm1.c:201:19: sparse: sparse: cast t= o restricted __be32 >> security/keys/trusted-keys/trusted_tpm1.c:201:19: sparse: sparse: cast t= o restricted __be32 >> security/keys/trusted-keys/trusted_tpm1.c:201:19: sparse: sparse: cast t= o restricted __be32 >> security/keys/trusted-keys/trusted_tpm1.c:201:19: sparse: sparse: cast t= o restricted __be32 >> security/keys/trusted-keys/trusted_tpm1.c:202:15: sparse: sparse: cast t= o restricted __be16 >> security/keys/trusted-keys/trusted_tpm1.c:202:15: sparse: sparse: cast t= o restricted __be16 >> security/keys/trusted-keys/trusted_tpm1.c:202:15: sparse: sparse: cast t= o restricted __be16 >> security/keys/trusted-keys/trusted_tpm1.c:202:15: sparse: sparse: cast t= o restricted __be16 security/keys/trusted-keys/trusted_tpm1.c:289:19: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:289:19: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:289:19: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:289:19: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:289:19: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:289:19: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:290:15: sparse: sparse: cast t= o restricted __be16 security/keys/trusted-keys/trusted_tpm1.c:290:15: sparse: sparse: cast t= o restricted __be16 security/keys/trusted-keys/trusted_tpm1.c:290:15: sparse: sparse: cast t= o restricted __be16 security/keys/trusted-keys/trusted_tpm1.c:290:15: sparse: sparse: cast t= o restricted __be16 security/keys/trusted-keys/trusted_tpm1.c:418:21: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:418:21: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:418:21: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:418:21: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:418:21: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:418:21: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:442:19: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:442:19: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:442:19: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:442:19: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:442:19: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:442:19: sparse: sparse: cast t= o restricted __be32 >> security/keys/trusted-keys/trusted_tpm1.c:501:17: sparse: sparse: incorr= ect type in assignment (different base types) @@ expected unsigned int [= usertype] ordinal @@ got restrunsigned int [usertype] ordinal @@ >> security/keys/trusted-keys/trusted_tpm1.c:501:17: sparse: expected un= signed int [usertype] ordinal >> security/keys/trusted-keys/trusted_tpm1.c:501:17: sparse: got restric= ted __be32 [usertype] >> security/keys/trusted-keys/trusted_tpm1.c:502:17: sparse: sparse: incorr= ect type in assignment (different base types) @@ expected unsigned int [= usertype] datsize @@ got restrunsigned int [usertype] datsize @@ >> security/keys/trusted-keys/trusted_tpm1.c:502:17: sparse: expected un= signed int [usertype] datsize security/keys/trusted-keys/trusted_tpm1.c:502:17: sparse: got restric= ted __be32 [usertype] >> security/keys/trusted-keys/trusted_tpm1.c:503:17: sparse: sparse: incorr= ect type in assignment (different base types) @@ expected unsigned int [= usertype] pcrsize @@ got restrunsigned int [usertype] pcrsize @@ >> security/keys/trusted-keys/trusted_tpm1.c:503:17: sparse: expected un= signed int [usertype] pcrsize security/keys/trusted-keys/trusted_tpm1.c:503:17: sparse: got restric= ted __be32 [usertype] security/keys/trusted-keys/trusted_tpm1.c:549:24: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:549:24: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:549:24: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:549:24: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:549:24: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:549:24: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:550:23: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:550:23: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:550:23: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:550:23: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:550:23: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:550:23: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:603:17: sparse: sparse: incorr= ect type in assignment (different base types) @@ expected unsigned int [= usertype] ordinal @@ got restrunsigned int [usertype] ordinal @@ security/keys/trusted-keys/trusted_tpm1.c:603:17: sparse: expected un= signed int [usertype] ordinal security/keys/trusted-keys/trusted_tpm1.c:603:17: sparse: got restric= ted __be32 [usertype] >> security/keys/trusted-keys/trusted_tpm1.c:604:17: sparse: sparse: incorr= ect type in assignment (different base types) @@ expected unsigned int [= usertype] keyhndl @@ got restrunsigned int [usertype] keyhndl @@ >> security/keys/trusted-keys/trusted_tpm1.c:604:17: sparse: expected un= signed int [usertype] keyhndl security/keys/trusted-keys/trusted_tpm1.c:604:17: sparse: got restric= ted __be32 [usertype] security/keys/trusted-keys/trusted_tpm1.c:640:20: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:640:20: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:640:20: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:640:20: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:640:20: sparse: sparse: cast t= o restricted __be32 security/keys/trusted-keys/trusted_tpm1.c:640:20: sparse: sparse: cast t= o restricted __be32 include/linux/tpm.h:318:9: sparse: sparse: incorrect type in argument 1 = (different base types) @@ expected unsigned long addr @@ got unsigned= chaunsigned long addr @@ include/linux/tpm.h:318:9: sparse: expected unsigned long addr include/linux/tpm.h:318:9: sparse: got unsigned char [usertype] *data include/linux/tpm.h:318:9: sparse: sparse: incorrect type in argument 1 = (different base types) @@ expected unsigned long addr @@ got unsigned= chaunsigned long addr @@ include/linux/tpm.h:318:9: sparse: expected unsigned long addr include/linux/tpm.h:318:9: sparse: got unsigned char [usertype] *data vim +201 security/keys/trusted-keys/trusted_tpm1.c d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 173 = d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 174 /* d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 175 * verify the AUTH1_COMMAND (Seal) result from TPM d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 176 */ e1ea9f86023e76 security/keys/trusted.c Denis Kenzior 2018-10-09 = 177 int TSS_checkhmac1(unsigned char *buffer, d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 178 const uint32_t command, d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 179 const unsigned char *ononce, d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 180 const unsigned char *key, 1bdbb4024c309e security/keys/trusted_defined.c Mimi Zohar 2010-12-13 = 181 unsigned int keylen, ...) d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 182 { d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 183 uint32_t bufsize; d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 184 uint16_t tag; d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 185 uint32_t ordinal; d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 186 uint32_t result; d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 187 unsigned char *enonce; d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 188 unsigned char *continueflag; d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 189 unsigned char *authdata; d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 190 unsigned char testhmac[SHA1_DIGEST_SIZE]; d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 191 unsigned char paramdigest[SHA1_DIGEST_SIZE]; d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 192 struct sdesc *sdesc; d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 193 unsigned int dlen; d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 194 unsigned int dpos; d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 195 va_list argp; d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 196 int ret; d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 197 = c78719203fc629 security/keys/trusted.c Jarkko Sakkinen 2019-03-25 = 198 if (!chip) c78719203fc629 security/keys/trusted.c Jarkko Sakkinen 2019-03-25 = 199 return -ENODEV; c78719203fc629 security/keys/trusted.c Jarkko Sakkinen 2019-03-25 = 200 = d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 @= 201 bufsize =3D LOAD32(buffer, TPM_SIZE_OFFSET); d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 @= 202 tag =3D LOAD16(buffer, 0); d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 203 ordinal =3D command; d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 204 result =3D LOAD32N(buffer, TPM_RETURN_OFFSET); d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 205 if (tag =3D=3D TPM_TAG_RSP_COMMAND) d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 206 return 0; d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 207 if (tag !=3D TPM_TAG_RSP_AUTH1_COMMAND) d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 208 return -EINVAL; d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 209 authdata =3D buffer + bufsize - SHA1_DIGEST_SIZE; d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 210 continueflag =3D authdata - 1; d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 211 enonce =3D continueflag - TPM_NONCE_SIZE; d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 212 = d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 213 sdesc =3D init_sdesc(hashalg); d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 214 if (IS_ERR(sdesc)) { d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 215 pr_info("trusted_key: can't alloc %s\n", hash_alg); d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 216 return PTR_ERR(sdesc); d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 217 } d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 218 ret =3D crypto_shash_init(&sdesc->shash); d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 219 if (ret < 0) d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 220 goto out; d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 221 ret =3D crypto_shash_update(&sdesc->shash, (const u8 *)&result, d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 222 sizeof result); d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 223 if (ret < 0) d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 224 goto out; d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 225 ret =3D crypto_shash_update(&sdesc->shash, (const u8 *)&ordinal, d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 226 sizeof ordinal); d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 227 if (ret < 0) d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 228 goto out; d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 229 va_start(argp, keylen); d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 230 for (;;) { d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 231 dlen =3D va_arg(argp, unsigned int); d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 232 if (dlen =3D=3D 0) d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 233 break; d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 234 dpos =3D va_arg(argp, unsigned int); d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 235 ret =3D crypto_shash_update(&sdesc->shash, buffer + dpos, dlen); 154a96bfcd53b8 security/keys/trusted_defined.c Tetsuo Handa 2011-01-17 = 236 if (ret < 0) 154a96bfcd53b8 security/keys/trusted_defined.c Tetsuo Handa 2011-01-17 = 237 break; bc5e0af0b36b6c security/keys/trusted_defined.c Mimi Zohar 2010-12-13 = 238 } d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 239 va_end(argp); 154a96bfcd53b8 security/keys/trusted_defined.c Tetsuo Handa 2011-01-17 = 240 if (!ret) d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 241 ret =3D crypto_shash_final(&sdesc->shash, paramdigest); d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 242 if (ret < 0) d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 243 goto out; bc5e0af0b36b6c security/keys/trusted_defined.c Mimi Zohar 2010-12-13 = 244 = d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 245 ret =3D TSS_rawhmac(testhmac, key, keylen, SHA1_DIGEST_SIZE, paramdig= est, d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 246 TPM_NONCE_SIZE, enonce, TPM_NONCE_SIZE, ononce, d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 247 1, continueflag, 0, 0); d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 248 if (ret < 0) d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 249 goto out; bc5e0af0b36b6c security/keys/trusted_defined.c Mimi Zohar 2010-12-13 = 250 = d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 251 if (memcmp(testhmac, authdata, SHA1_DIGEST_SIZE)) d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 252 ret =3D -EINVAL; d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 253 out: ee618b4619b725 security/keys/trusted.c Eric Biggers 2017-06-08 = 254 kzfree(sdesc); d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 255 return ret; d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 256 } e1ea9f86023e76 security/keys/trusted.c Denis Kenzior 2018-10-09 = 257 EXPORT_SYMBOL_GPL(TSS_checkhmac1); d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 = 258 = :::::: The code@line 201 was first introduced by commit :::::: d00a1c72f7f4661212299e6cb132dfa58030bcdb keys: add new trusted key-t= ype :::::: TO: Mimi Zohar :::::: CC: James Morris --- 0-DAY kernel test infrastructure Open Source Technology Cent= er https://lists.01.org/pipermail/kbuild-all Intel Corporati= on --===============6696521643379850516==--