]> git.baikalelectronics.ru Git - kernel.git/commit
evm: Fix a small race in init_desc()
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 12 May 2020 13:19:17 +0000 (16:19 +0300)
committerMimi Zohar <zohar@linux.ibm.com>
Thu, 14 May 2020 23:55:54 +0000 (19:55 -0400)
commit7ba4b4d8771b3ff6af27f63571ff4cad67188f57
treec85e552f9a199f1996efbd103abebf6dd52cbc63
parent1b3d0d4ad9dbaae8bf2cdaef3a60d1b26ee62dc4
evm: Fix a small race in init_desc()

The IS_ERR_OR_NULL() function has two conditions and if we got really
unlucky we could hit a race where "ptr" started as an error pointer and
then was set to NULL.  Both conditions would be false even though the
pointer at the end was NULL.

This patch fixes the problem by ensuring that "*tfm" can only be NULL
or valid.  I have introduced a "tmp_tfm" variable to make that work.  I
also reversed a condition and pulled the code in one tab.

Reported-by: Roberto Sassu <roberto.sassu@huawei.com>
Fixes: 787a6e99145b ("evm: Check also if *tfm is an error pointer in init_desc()")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Roberto Sassu <roberto.sassu@huawei.com>
Acked-by: Krzysztof Struczynski <krzysztof.struczynski@huawei.com>
Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
security/integrity/evm/evm_crypto.c