--- v8
+++ v5
@@ -6,21 +6,16 @@
The "boot_aggregate" measurement entry is the delimiter between soft
boots.
-Changelog v7:
-- use boolean for indicating hash should be added to hash table.
-(Reported by Dmitry Kasatkin)
-
Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
-Acked-by: Dmitry Kasatkin <dmitry.kasatkin@gmail.com>
---
- security/integrity/ima/ima_queue.c | 16 ++++++++++------
- 1 file changed, 10 insertions(+), 6 deletions(-)
+ security/integrity/ima/ima_queue.c | 15 +++++++++------
+ 1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/security/integrity/ima/ima_queue.c b/security/integrity/ima/ima_queue.c
-index 4b1bb7787839..e180de598a92 100644
+index 4b1bb77..12d1b04 100644
--- a/security/integrity/ima/ima_queue.c
+++ b/security/integrity/ima/ima_queue.c
-@@ -65,11 +65,13 @@ static struct ima_queue_entry *ima_lookup_digest_entry(u8 *digest_value,
+@@ -65,11 +65,12 @@ static struct ima_queue_entry *ima_lookup_digest_entry(u8 *digest_value,
}
/* ima_add_template_entry helper function:
@@ -31,25 +26,24 @@
* (Called with ima_extend_list_mutex held.)
*/
-static int ima_add_digest_entry(struct ima_template_entry *entry)
-+static int ima_add_digest_entry(struct ima_template_entry *entry,
-+ bool update_htable)
++static int ima_add_digest_entry(struct ima_template_entry *entry, int flags)
{
struct ima_queue_entry *qe;
unsigned int key;
-@@ -85,8 +87,10 @@ static int ima_add_digest_entry(struct ima_template_entry *entry)
+@@ -85,8 +86,10 @@ static int ima_add_digest_entry(struct ima_template_entry *entry)
list_add_tail_rcu(&qe->later, &ima_measurements);
atomic_long_inc(&ima_htable.len);
- key = ima_hash_key(entry->digest);
- hlist_add_head_rcu(&qe->hnext, &ima_htable.queue[key]);
-+ if (update_htable) {
++ if (flags) {
+ key = ima_hash_key(entry->digest);
+ hlist_add_head_rcu(&qe->hnext, &ima_htable.queue[key]);
+ }
return 0;
}
-@@ -126,7 +130,7 @@ int ima_add_template_entry(struct ima_template_entry *entry, int violation,
+@@ -126,7 +129,7 @@ int ima_add_template_entry(struct ima_template_entry *entry, int violation,
}
}
@@ -58,7 +52,7 @@
if (result < 0) {
audit_cause = "ENOMEM";
audit_info = 0;
-@@ -155,7 +159,7 @@ int ima_restore_measurement_entry(struct ima_template_entry *entry)
+@@ -155,7 +158,7 @@ int ima_restore_measurement_entry(struct ima_template_entry *entry)
int result = 0;
mutex_lock(&ima_extend_list_mutex);