From 2bb036937122793694af93527920a4cb4ecd6388 Mon Sep 17 00:00:00 2001 From: Roberto Sassu Date: Mon, 19 Dec 2011 15:57:27 +0100 Subject: [PATCH] --- yaml --- r: 283258 b: refs/heads/master c: 45fae7493970d7c45626ccd96d4a74f5f1eea5a9 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/security/integrity/ima/ima_api.c | 4 ++-- trunk/security/integrity/ima/ima_queue.c | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index af76bcb043e0..7bfc842dcc1c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 114d6e9c103736487c967060d0a7aec9a7fce967 +refs/heads/master: 45fae7493970d7c45626ccd96d4a74f5f1eea5a9 diff --git a/trunk/security/integrity/ima/ima_api.c b/trunk/security/integrity/ima/ima_api.c index 0d50df04ccc4..88a2788b981d 100644 --- a/trunk/security/integrity/ima/ima_api.c +++ b/trunk/security/integrity/ima/ima_api.c @@ -178,8 +178,8 @@ void ima_store_measurement(struct integrity_iint_cache *iint, strncpy(entry->template.file_name, filename, IMA_EVENT_NAME_LEN_MAX); result = ima_store_template(entry, violation, inode); - if (!result) + if (!result || result == -EEXIST) iint->flags |= IMA_MEASURED; - else + if (result < 0) kfree(entry); } diff --git a/trunk/security/integrity/ima/ima_queue.c b/trunk/security/integrity/ima/ima_queue.c index 8e28f04a5e2e..e1a5062b1f6a 100644 --- a/trunk/security/integrity/ima/ima_queue.c +++ b/trunk/security/integrity/ima/ima_queue.c @@ -114,6 +114,7 @@ int ima_add_template_entry(struct ima_template_entry *entry, int violation, memcpy(digest, entry->digest, sizeof digest); if (ima_lookup_digest_entry(digest)) { audit_cause = "hash_exists"; + result = -EEXIST; goto out; } }