All of lore.kernel.org
 help / color / mirror / Atom feed
* [jpirko-mlxsw:wip_attestation_all_2 31/68] security/integrity/ima/ima_attestation.c:366:48: sparse: sparse: incorrect type in assignment (different base types)
@ 2026-11-13 22:41 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-11-13 22:41 UTC (permalink / raw)
  To: Jiri Pirko; +Cc: oe-kbuild-all

tree:   https://github.com/jpirko/linux_mlxsw wip_attestation_all_2
head:   7ff5e548abbc2312431d4eea9ad283347963a6e2
commit: 838a230dec9f155e7e064b2afb98e487f70fda7a [31/68] ima: Project the attestation journal through securityfs
config: s390-randconfig-r2301-20261113 (https://download.01.org/0day-ci/archive/20261113/202611132302.hXUschnD-lkp@intel.com/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project 8621950157210c1fa68f20f0614cb51310ec9dff)
sparse: v0.6.5-rc1-21-g84ec0658
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261113/202611132302.hXUschnD-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202611132302.hXUschnD-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> security/integrity/ima/ima_attestation.c:366:48: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] encoded_length @@     got restricted __le32 [usertype] @@
   security/integrity/ima/ima_attestation.c:366:48: sparse:     expected unsigned int [usertype] encoded_length
   security/integrity/ima/ima_attestation.c:366:48: sparse:     got restricted __le32 [usertype]

vim +366 security/integrity/ima/ima_attestation.c

8d1b3ed1db2e379 Jiri Pirko 2026-09-30  319  
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  320  static int
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  321  ima_attestation_template_copy(const struct ima_template_entry *entry,
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  322  			      u8 **data, size_t *data_length)
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  323  {
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  324  	const struct ima_template_desc *desc = entry->template_desc;
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  325  	bool legacy = !strcmp(desc->name, IMA_TEMPLATE_IMA_NAME);
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  326  	size_t length = 0;
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  327  	size_t offset = 0;
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  328  	int index;
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  329  
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  330  	for (index = 0; index < desc->num_fields; index++) {
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  331  		const struct ima_template_field *field = desc->fields[index];
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  332  		const struct ima_field_data *field_data =
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  333  			&entry->template_data[index];
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  334  		size_t field_length = field_data->len;
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  335  		bool length_prefix = true;
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  336  
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  337  		if (legacy && !strcmp(field->field_id, "d"))
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  338  			length_prefix = false;
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  339  		else if (legacy && !strcmp(field->field_id, "n"))
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  340  			field_length = strlen((char *)field_data->data);
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  341  		if ((length_prefix &&
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  342  		     check_add_overflow(length, sizeof(u32), &length)) ||
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  343  		    check_add_overflow(length, field_length, &length) ||
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  344  		    length > 65536)
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  345  			return -EINVAL;
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  346  	}
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  347  
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  348  	*data = length ? kmalloc(length, GFP_NOFS) : NULL;
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  349  	if (length && !*data)
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  350  		return -ENOMEM;
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  351  	for (index = 0; index < desc->num_fields; index++) {
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  352  		const struct ima_template_field *field = desc->fields[index];
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  353  		const struct ima_field_data *field_data =
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  354  			&entry->template_data[index];
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  355  		size_t field_length = field_data->len;
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  356  		bool length_prefix = true;
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  357  
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  358  		if (legacy && !strcmp(field->field_id, "d"))
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  359  			length_prefix = false;
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  360  		else if (legacy && !strcmp(field->field_id, "n"))
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  361  			field_length = strlen((char *)field_data->data);
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  362  		if (length_prefix) {
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  363  			u32 encoded_length = (u32)field_length;
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  364  
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  365  			if (ima_canonical_fmt)
8d1b3ed1db2e379 Jiri Pirko 2026-09-30 @366  				encoded_length = cpu_to_le32(encoded_length);
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  367  			memcpy(*data + offset, &encoded_length,
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  368  			       sizeof(encoded_length));
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  369  			offset += sizeof(encoded_length);
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  370  		}
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  371  		memcpy(*data + offset, field_data->data, field_length);
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  372  		offset += field_length;
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  373  	}
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  374  	*data_length = length;
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  375  	return 0;
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  376  }
8d1b3ed1db2e379 Jiri Pirko 2026-09-30  377  

:::::: The code at line 366 was first introduced by commit
:::::: 8d1b3ed1db2e379ad99f0104f505e7724c92f8f4 ima: Route measurements through attestation

:::::: TO: Jiri Pirko <jiri@nvidia.com>
:::::: CC: Jiri Pirko <jiri@nvidia.com>

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

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

only message in thread, other threads:[~2026-11-13 22:41 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-13 22:41 [jpirko-mlxsw:wip_attestation_all_2 31/68] security/integrity/ima/ima_attestation.c:366:48: sparse: sparse: incorrect type in assignment (different base types) 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.