* [weiny2:lm-pks-pmem-for-5.10-v6 17/72] security/keys/trusted-keys/trusted_tpm1.c:1096 trusted_instantiate() error: we previously assumed 'payload' could be null (see line 1038)
@ 2020-09-26 22:35 kernel test robot
0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2020-09-26 22:35 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 13292 bytes --]
CC: kbuild-all(a)lists.01.org
TO: Elena Reshetova <elena.reshetova@intel.com>
CC: Ira Weiny <ira.weiny@intel.com>
tree: https://github.com/weiny2/linux-kernel.git lm-pks-pmem-for-5.10-v6
head: b3d5c32178ad9ae450cd7183aee0e8020075d7ad
commit: bf52ce7cb02eebeb85f227f19ad4f9b01f91697a [17/72] keys/trusted: protect trusted keys using PKS
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: i386-randconfig-m021-20200927 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 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:
security/keys/trusted-keys/trusted_tpm1.c:1096 trusted_instantiate() error: we previously assumed 'payload' could be null (see line 1038)
Old smatch warnings:
security/keys/trusted-keys/trusted_tpm1.c:105 TSS_sha1() warn: passing a valid pointer to 'PTR_ERR'
security/keys/trusted-keys/trusted_tpm1.c:125 TSS_rawhmac() warn: passing a valid pointer to 'PTR_ERR'
security/keys/trusted-keys/trusted_tpm1.c:178 TSS_authhmac() warn: passing a valid pointer to 'PTR_ERR'
security/keys/trusted-keys/trusted_tpm1.c:254 TSS_checkhmac1() warn: passing a valid pointer to 'PTR_ERR'
security/keys/trusted-keys/trusted_tpm1.c:347 TSS_checkhmac2() warn: passing a valid pointer to 'PTR_ERR'
vim +/payload +1096 security/keys/trusted-keys/trusted_tpm1.c
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 997
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 998 /*
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 999 * trusted_instantiate - create a new trusted key
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1000 *
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1001 * Unseal an existing trusted blob or, for a new key, get a
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1002 * random key, then seal and create a trusted key-type key,
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1003 * adding it to the specified keyring.
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1004 *
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1005 * On success, return 0. Otherwise return errno.
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1006 */
cf7f601c067994 security/keys/trusted.c David Howells 2012-09-13 1007 static int trusted_instantiate(struct key *key,
cf7f601c067994 security/keys/trusted.c David Howells 2012-09-13 1008 struct key_preparsed_payload *prep)
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1009 {
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1010 struct trusted_key_payload *payload = NULL;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1011 struct trusted_key_options *options = NULL;
cf7f601c067994 security/keys/trusted.c David Howells 2012-09-13 1012 size_t datalen = prep->datalen;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1013 char *datablob;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1014 int ret = 0;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1015 int key_cmd;
41ab999c80f1d3 security/keys/trusted.c Kent Yoder 2012-06-07 1016 size_t key_len;
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1017 int tpm2;
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1018
240730437deb21 security/keys/trusted.c Roberto Sassu 2019-02-06 1019 tpm2 = tpm_is_tpm2(chip);
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1020 if (tpm2 < 0)
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1021 return tpm2;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1022
cf7f601c067994 security/keys/trusted.c David Howells 2012-09-13 1023 if (datalen <= 0 || datalen > 32767 || !prep->data)
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1024 return -EINVAL;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1025
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1026 datablob = kmalloc(datalen + 1, GFP_KERNEL);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1027 if (!datablob)
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1028 return -ENOMEM;
cf7f601c067994 security/keys/trusted.c David Howells 2012-09-13 1029 memcpy(datablob, prep->data, datalen);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1030 datablob[datalen] = '\0';
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1031
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1032 options = trusted_options_alloc();
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1033 if (!options) {
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1034 ret = -ENOMEM;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1035 goto out;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1036 }
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1037 payload = trusted_payload_alloc(key);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 @1038 if (!payload) {
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1039 ret = -ENOMEM;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1040 goto out;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1041 }
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1042
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1043 key_cmd = datablob_parse(datablob, payload, options);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1044 if (key_cmd < 0) {
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1045 ret = key_cmd;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1046 goto out;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1047 }
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1048
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1049 if (!options->keyhandle) {
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1050 ret = -EINVAL;
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1051 goto out;
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1052 }
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1053
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1054 dump_payload(payload);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1055 dump_options(options);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1056
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1057 switch (key_cmd) {
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1058 case Opt_load:
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1059 if (tpm2)
2e19e10131a08d security/keys/trusted-keys/trusted_tpm1.c Sumit Garg 2019-10-16 1060 ret = tpm2_unseal_trusted(chip, payload, options);
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1061 else
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1062 ret = key_unseal(payload, options);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1063 dump_payload(payload);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1064 dump_options(options);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1065 if (ret < 0)
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1066 pr_info("trusted_key: key_unseal failed (%d)\n", ret);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1067 break;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1068 case Opt_new:
41ab999c80f1d3 security/keys/trusted.c Kent Yoder 2012-06-07 1069 key_len = payload->key_len;
bf52ce7cb02eeb security/keys/trusted-keys/trusted_tpm1.c Elena Reshetova 2020-09-18 1070 trusted_key_enable_access();
240730437deb21 security/keys/trusted.c Roberto Sassu 2019-02-06 1071 ret = tpm_get_random(chip, payload->key, key_len);
bf52ce7cb02eeb security/keys/trusted-keys/trusted_tpm1.c Elena Reshetova 2020-09-18 1072 trusted_key_disable_access();
41ab999c80f1d3 security/keys/trusted.c Kent Yoder 2012-06-07 1073 if (ret != key_len) {
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1074 pr_info("trusted_key: key_create failed (%d)\n", ret);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1075 goto out;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1076 }
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1077 if (tpm2)
2e19e10131a08d security/keys/trusted-keys/trusted_tpm1.c Sumit Garg 2019-10-16 1078 ret = tpm2_seal_trusted(chip, payload, options);
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1079 else
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1080 ret = key_seal(payload, options);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1081 if (ret < 0)
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1082 pr_info("trusted_key: key_seal failed (%d)\n", ret);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1083 break;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1084 default:
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1085 ret = -EINVAL;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1086 goto out;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1087 }
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1088 if (!ret && options->pcrlock)
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1089 ret = pcrlock(options->pcrlock);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1090 out:
453431a54934d9 security/keys/trusted-keys/trusted_tpm1.c Waiman Long 2020-08-06 1091 kfree_sensitive(datablob);
453431a54934d9 security/keys/trusted-keys/trusted_tpm1.c Waiman Long 2020-08-06 1092 kfree_sensitive(options);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1093 if (!ret)
ee0b31a25a0101 security/keys/trusted.c Mimi Zohar 2012-01-17 1094 rcu_assign_keypointer(key, payload);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1095 else
bf52ce7cb02eeb security/keys/trusted-keys/trusted_tpm1.c Elena Reshetova 2020-09-18 @1096 trusted_payload_free(payload);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1097 return ret;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1098 }
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1099
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 35615 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* [weiny2:lm-pks-pmem-for-5.10-v6 17/72] security/keys/trusted-keys/trusted_tpm1.c:1096 trusted_instantiate() error: we previously assumed 'payload' could be null (see line 1038)
@ 2020-09-29 7:31 ` Dan Carpenter
0 siblings, 0 replies; 3+ messages in thread
From: Dan Carpenter @ 2020-09-29 7:31 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 11499 bytes --]
tree: https://github.com/weiny2/linux-kernel.git lm-pks-pmem-for-5.10-v6
head: b3d5c32178ad9ae450cd7183aee0e8020075d7ad
commit: bf52ce7cb02eebeb85f227f19ad4f9b01f91697a [17/72] keys/trusted: protect trusted keys using PKS
config: i386-randconfig-m021-20200927 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 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:
security/keys/trusted-keys/trusted_tpm1.c:1096 trusted_instantiate() error: we previously assumed 'payload' could be null (see line 1038)
vim +/payload +1096 security/keys/trusted-keys/trusted_tpm1.c
cf7f601c067994 security/keys/trusted.c David Howells 2012-09-13 1007 static int trusted_instantiate(struct key *key,
cf7f601c067994 security/keys/trusted.c David Howells 2012-09-13 1008 struct key_preparsed_payload *prep)
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1009 {
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1010 struct trusted_key_payload *payload = NULL;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1011 struct trusted_key_options *options = NULL;
cf7f601c067994 security/keys/trusted.c David Howells 2012-09-13 1012 size_t datalen = prep->datalen;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1013 char *datablob;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1014 int ret = 0;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1015 int key_cmd;
41ab999c80f1d3 security/keys/trusted.c Kent Yoder 2012-06-07 1016 size_t key_len;
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1017 int tpm2;
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1018
240730437deb21 security/keys/trusted.c Roberto Sassu 2019-02-06 1019 tpm2 = tpm_is_tpm2(chip);
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1020 if (tpm2 < 0)
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1021 return tpm2;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1022
cf7f601c067994 security/keys/trusted.c David Howells 2012-09-13 1023 if (datalen <= 0 || datalen > 32767 || !prep->data)
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1024 return -EINVAL;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1025
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1026 datablob = kmalloc(datalen + 1, GFP_KERNEL);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1027 if (!datablob)
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1028 return -ENOMEM;
cf7f601c067994 security/keys/trusted.c David Howells 2012-09-13 1029 memcpy(datablob, prep->data, datalen);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1030 datablob[datalen] = '\0';
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1031
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1032 options = trusted_options_alloc();
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1033 if (!options) {
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1034 ret = -ENOMEM;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1035 goto out;
This error path is problematic as well.
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1036 }
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1037 payload = trusted_payload_alloc(key);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 @1038 if (!payload) {
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1039 ret = -ENOMEM;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1040 goto out;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1041 }
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1042
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1043 key_cmd = datablob_parse(datablob, payload, options);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1044 if (key_cmd < 0) {
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1045 ret = key_cmd;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1046 goto out;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1047 }
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1048
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1049 if (!options->keyhandle) {
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1050 ret = -EINVAL;
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1051 goto out;
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1052 }
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1053
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1054 dump_payload(payload);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1055 dump_options(options);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1056
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1057 switch (key_cmd) {
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1058 case Opt_load:
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1059 if (tpm2)
2e19e10131a08d security/keys/trusted-keys/trusted_tpm1.c Sumit Garg 2019-10-16 1060 ret = tpm2_unseal_trusted(chip, payload, options);
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1061 else
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1062 ret = key_unseal(payload, options);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1063 dump_payload(payload);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1064 dump_options(options);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1065 if (ret < 0)
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1066 pr_info("trusted_key: key_unseal failed (%d)\n", ret);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1067 break;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1068 case Opt_new:
41ab999c80f1d3 security/keys/trusted.c Kent Yoder 2012-06-07 1069 key_len = payload->key_len;
bf52ce7cb02eeb security/keys/trusted-keys/trusted_tpm1.c Elena Reshetova 2020-09-18 1070 trusted_key_enable_access();
240730437deb21 security/keys/trusted.c Roberto Sassu 2019-02-06 1071 ret = tpm_get_random(chip, payload->key, key_len);
bf52ce7cb02eeb security/keys/trusted-keys/trusted_tpm1.c Elena Reshetova 2020-09-18 1072 trusted_key_disable_access();
41ab999c80f1d3 security/keys/trusted.c Kent Yoder 2012-06-07 1073 if (ret != key_len) {
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1074 pr_info("trusted_key: key_create failed (%d)\n", ret);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1075 goto out;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1076 }
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1077 if (tpm2)
2e19e10131a08d security/keys/trusted-keys/trusted_tpm1.c Sumit Garg 2019-10-16 1078 ret = tpm2_seal_trusted(chip, payload, options);
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1079 else
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1080 ret = key_seal(payload, options);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1081 if (ret < 0)
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1082 pr_info("trusted_key: key_seal failed (%d)\n", ret);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1083 break;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1084 default:
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1085 ret = -EINVAL;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1086 goto out;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1087 }
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1088 if (!ret && options->pcrlock)
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1089 ret = pcrlock(options->pcrlock);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1090 out:
453431a54934d9 security/keys/trusted-keys/trusted_tpm1.c Waiman Long 2020-08-06 1091 kfree_sensitive(datablob);
453431a54934d9 security/keys/trusted-keys/trusted_tpm1.c Waiman Long 2020-08-06 1092 kfree_sensitive(options);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1093 if (!ret)
ee0b31a25a0101 security/keys/trusted.c Mimi Zohar 2012-01-17 1094 rcu_assign_keypointer(key, payload);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1095 else
bf52ce7cb02eeb security/keys/trusted-keys/trusted_tpm1.c Elena Reshetova 2020-09-18 @1096 trusted_payload_free(payload);
^^^^^^^
Presumably this will Oops in the caller.
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1097 return ret;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1098 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 35615 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* [weiny2:lm-pks-pmem-for-5.10-v6 17/72] security/keys/trusted-keys/trusted_tpm1.c:1096 trusted_instantiate() error: we previously assumed 'payload' could be null (see line 1038)
@ 2020-09-29 7:31 ` Dan Carpenter
0 siblings, 0 replies; 3+ messages in thread
From: Dan Carpenter @ 2020-09-29 7:31 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 11499 bytes --]
tree: https://github.com/weiny2/linux-kernel.git lm-pks-pmem-for-5.10-v6
head: b3d5c32178ad9ae450cd7183aee0e8020075d7ad
commit: bf52ce7cb02eebeb85f227f19ad4f9b01f91697a [17/72] keys/trusted: protect trusted keys using PKS
config: i386-randconfig-m021-20200927 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 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:
security/keys/trusted-keys/trusted_tpm1.c:1096 trusted_instantiate() error: we previously assumed 'payload' could be null (see line 1038)
vim +/payload +1096 security/keys/trusted-keys/trusted_tpm1.c
cf7f601c067994 security/keys/trusted.c David Howells 2012-09-13 1007 static int trusted_instantiate(struct key *key,
cf7f601c067994 security/keys/trusted.c David Howells 2012-09-13 1008 struct key_preparsed_payload *prep)
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1009 {
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1010 struct trusted_key_payload *payload = NULL;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1011 struct trusted_key_options *options = NULL;
cf7f601c067994 security/keys/trusted.c David Howells 2012-09-13 1012 size_t datalen = prep->datalen;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1013 char *datablob;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1014 int ret = 0;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1015 int key_cmd;
41ab999c80f1d3 security/keys/trusted.c Kent Yoder 2012-06-07 1016 size_t key_len;
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1017 int tpm2;
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1018
240730437deb21 security/keys/trusted.c Roberto Sassu 2019-02-06 1019 tpm2 = tpm_is_tpm2(chip);
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1020 if (tpm2 < 0)
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1021 return tpm2;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1022
cf7f601c067994 security/keys/trusted.c David Howells 2012-09-13 1023 if (datalen <= 0 || datalen > 32767 || !prep->data)
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1024 return -EINVAL;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1025
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1026 datablob = kmalloc(datalen + 1, GFP_KERNEL);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1027 if (!datablob)
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1028 return -ENOMEM;
cf7f601c067994 security/keys/trusted.c David Howells 2012-09-13 1029 memcpy(datablob, prep->data, datalen);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1030 datablob[datalen] = '\0';
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1031
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1032 options = trusted_options_alloc();
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1033 if (!options) {
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1034 ret = -ENOMEM;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1035 goto out;
This error path is problematic as well.
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1036 }
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1037 payload = trusted_payload_alloc(key);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 @1038 if (!payload) {
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1039 ret = -ENOMEM;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1040 goto out;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1041 }
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1042
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1043 key_cmd = datablob_parse(datablob, payload, options);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1044 if (key_cmd < 0) {
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1045 ret = key_cmd;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1046 goto out;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1047 }
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1048
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1049 if (!options->keyhandle) {
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1050 ret = -EINVAL;
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1051 goto out;
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1052 }
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1053
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1054 dump_payload(payload);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1055 dump_options(options);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1056
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1057 switch (key_cmd) {
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1058 case Opt_load:
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1059 if (tpm2)
2e19e10131a08d security/keys/trusted-keys/trusted_tpm1.c Sumit Garg 2019-10-16 1060 ret = tpm2_unseal_trusted(chip, payload, options);
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1061 else
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1062 ret = key_unseal(payload, options);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1063 dump_payload(payload);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1064 dump_options(options);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1065 if (ret < 0)
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1066 pr_info("trusted_key: key_unseal failed (%d)\n", ret);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1067 break;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1068 case Opt_new:
41ab999c80f1d3 security/keys/trusted.c Kent Yoder 2012-06-07 1069 key_len = payload->key_len;
bf52ce7cb02eeb security/keys/trusted-keys/trusted_tpm1.c Elena Reshetova 2020-09-18 1070 trusted_key_enable_access();
240730437deb21 security/keys/trusted.c Roberto Sassu 2019-02-06 1071 ret = tpm_get_random(chip, payload->key, key_len);
bf52ce7cb02eeb security/keys/trusted-keys/trusted_tpm1.c Elena Reshetova 2020-09-18 1072 trusted_key_disable_access();
41ab999c80f1d3 security/keys/trusted.c Kent Yoder 2012-06-07 1073 if (ret != key_len) {
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1074 pr_info("trusted_key: key_create failed (%d)\n", ret);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1075 goto out;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1076 }
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1077 if (tpm2)
2e19e10131a08d security/keys/trusted-keys/trusted_tpm1.c Sumit Garg 2019-10-16 1078 ret = tpm2_seal_trusted(chip, payload, options);
0fe5480303a165 security/keys/trusted.c Jarkko Sakkinen 2015-06-26 1079 else
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1080 ret = key_seal(payload, options);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1081 if (ret < 0)
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1082 pr_info("trusted_key: key_seal failed (%d)\n", ret);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1083 break;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1084 default:
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1085 ret = -EINVAL;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1086 goto out;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1087 }
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1088 if (!ret && options->pcrlock)
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1089 ret = pcrlock(options->pcrlock);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1090 out:
453431a54934d9 security/keys/trusted-keys/trusted_tpm1.c Waiman Long 2020-08-06 1091 kfree_sensitive(datablob);
453431a54934d9 security/keys/trusted-keys/trusted_tpm1.c Waiman Long 2020-08-06 1092 kfree_sensitive(options);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1093 if (!ret)
ee0b31a25a0101 security/keys/trusted.c Mimi Zohar 2012-01-17 1094 rcu_assign_keypointer(key, payload);
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1095 else
bf52ce7cb02eeb security/keys/trusted-keys/trusted_tpm1.c Elena Reshetova 2020-09-18 @1096 trusted_payload_free(payload);
^^^^^^^
Presumably this will Oops in the caller.
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1097 return ret;
d00a1c72f7f466 security/keys/trusted_defined.c Mimi Zohar 2010-11-23 1098 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 35615 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-09-29 7:31 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-26 22:35 [weiny2:lm-pks-pmem-for-5.10-v6 17/72] security/keys/trusted-keys/trusted_tpm1.c:1096 trusted_instantiate() error: we previously assumed 'payload' could be null (see line 1038) kernel test robot
2020-09-29 7:31 Dan Carpenter
2020-09-29 7:31 ` Dan Carpenter
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.