ima: Fix ima digest hash table key calculation
authorKrzysztof Struczynski <krzysztof.struczynski@huawei.com>
Tue, 28 Apr 2020 07:30:10 +0000 (09:30 +0200)
committerMimi Zohar <zohar@linux.ibm.com>
Fri, 8 May 2020 02:54:07 +0000 (22:54 -0400)
commit1129d31b55d509f15e72dc68e4b5c3a4d7b4da8d
tree039561d120c6fa750e4473bef48047f9ca29c5c5
parent2592677c0486e64a08e0b930a7dfa6fbf77e6fc1
ima: Fix ima digest hash table key calculation

Function hash_long() accepts unsigned long, while currently only one byte
is passed from ima_hash_key(), which calculates a key for ima_htable.

Given that hashing the digest does not give clear benefits compared to
using the digest itself, remove hash_long() and return the modulus
calculated on the first two bytes of the digest with the number of slots.
Also reduce the depth of the hash table by doubling the number of slots.

Cc: stable@vger.kernel.org
Fixes: 3323eec921ef ("integrity: IMA as an integrity service provider")
Co-developed-by: Roberto Sassu <roberto.sassu@huawei.com>
Signed-off-by: Roberto Sassu <roberto.sassu@huawei.com>
Signed-off-by: Krzysztof Struczynski <krzysztof.struczynski@huawei.com>
Acked-by: David.Laight@aculab.com (big endian system concerns)
Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
security/integrity/ima/ima.h