mirror-linux/security/integrity/ima
Roberto Sassu f375bcf69f ima: Fix memory leak in __ima_inode_hash()
commit 8c1d6a050a upstream.

Commit f3cc6b25dc ("ima: always measure and audit files in policy") lets
measurement or audit happen even if the file digest cannot be calculated.

As a result, iint->ima_hash could have been allocated despite
ima_collect_measurement() returning an error.

Since ima_hash belongs to a temporary inode metadata structure, declared
at the beginning of __ima_inode_hash(), just add a kfree() call if
ima_collect_measurement() returns an error different from -ENOMEM (in that
case, ima_hash should not have been allocated).

Cc: stable@vger.kernel.org
Fixes: 280fe8367b ("ima: Always return a file measurement in ima_file_hash()")
Signed-off-by: Roberto Sassu <roberto.sassu@huawei.com>
Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-01-07 11:11:52 +01:00
..
Kconfig ima: Fix hash dependency to correct algorithm 2023-01-07 11:11:46 +01:00
Makefile ima: generalize x86/EFI arch glue for other EFI architectures 2020-11-06 07:40:42 +01:00
ima.h IMA: introduce a new policy option func=SETXATTR_CHECK 2021-08-16 17:35:35 -04:00
ima_api.c ima: permit fsverity's file digests in the IMA measurement list 2022-05-05 11:49:13 -04:00
ima_appraise.c ima: fix blocking of security.ima xattrs of unsupported algorithms 2022-08-23 10:42:02 -04:00
ima_asymmetric_keys.c ima: Add digest and digest_len params to the functions to measure a buffer 2021-07-23 09:27:02 -04:00
ima_crypto.c ima: Fix potential memory leak in ima_init_crypto() 2022-07-13 10:13:58 -04:00
ima_efi.c ima: force signature verification when CONFIG_KEXEC_SIG is configured 2022-07-13 10:13:41 -04:00
ima_fs.c ima: Return error code obtained from securityfs functions 2022-02-15 11:17:01 -05:00
ima_init.c ima: define ima_max_digest_data struct without a flexible array variable 2022-02-15 11:52:06 -05:00
ima_kexec.c x86/kexec: Carry forward IMA measurement log on kexec 2022-07-01 15:22:16 +02:00
ima_main.c ima: Fix memory leak in __ima_inode_hash() 2023-01-07 11:11:52 +01:00
ima_modsig.c ima: Move comprehensive rule validation checks out of the token parser 2020-07-20 13:28:15 -04:00
ima_mok.c IMA: remove -Wmissing-prototypes warning 2021-07-23 08:05:06 -04:00
ima_policy.c ima: Simplify ima_lsm_copy_rule 2022-12-31 13:33:08 +01:00
ima_queue.c IMA: support for duplicate measurement records 2021-06-11 12:54:13 -04:00
ima_queue_keys.c ima: Add digest and digest_len params to the functions to measure a buffer 2021-07-23 09:27:02 -04:00
ima_template.c ima: Fix a potential NULL pointer access in ima_restore_measurement_list 2023-01-07 11:11:52 +01:00
ima_template_lib.c ima: fix violation measurement list record 2022-07-06 22:31:52 -04:00
ima_template_lib.h ima: define a new template field named 'd-ngv2' and templates 2022-05-05 11:49:13 -04:00