diff options
Diffstat (limited to 'security/integrity/ima/ima_api.c')
| -rw-r--r-- | security/integrity/ima/ima_api.c | 9 | 
1 files changed, 5 insertions, 4 deletions
diff --git a/security/integrity/ima/ima_api.c b/security/integrity/ima/ima_api.c index 98160a3259fe..a0fe5041310a 100644 --- a/security/integrity/ima/ima_api.c +++ b/security/integrity/ima/ima_api.c @@ -40,7 +40,8 @@ static const char *IMA_TEMPLATE_NAME = "ima";   * Returns 0 on success, error code otherwise   */  int ima_store_template(struct ima_template_entry *entry, -		       int violation, struct inode *inode) +		       int violation, struct inode *inode, +		       const unsigned char *filename)  {  	const char *op = "add_template_measure";  	const char *audit_cause = "hashing_error"; @@ -67,7 +68,7 @@ int ima_store_template(struct ima_template_entry *entry,  		}  		memcpy(entry->digest, hash.hdr.digest, hash.hdr.length);  	} -	result = ima_add_template_entry(entry, violation, op, inode); +	result = ima_add_template_entry(entry, violation, op, inode, filename);  	return result;  } @@ -96,7 +97,7 @@ void ima_add_violation(struct file *file, const unsigned char *filename,  	}  	memset(&entry->template, 0, sizeof(entry->template));  	strncpy(entry->template.file_name, filename, IMA_EVENT_NAME_LEN_MAX); -	result = ima_store_template(entry, violation, inode); +	result = ima_store_template(entry, violation, inode, filename);  	if (result < 0)  		kfree(entry);  err_out: @@ -248,7 +249,7 @@ void ima_store_measurement(struct integrity_iint_cache *iint,  	       (strlen(filename) > IMA_EVENT_NAME_LEN_MAX) ?  	       file->f_dentry->d_name.name : filename); -	result = ima_store_template(entry, violation, inode); +	result = ima_store_template(entry, violation, inode, filename);  	if (!result || result == -EEXIST)  		iint->flags |= IMA_MEASURED;  	if (result < 0)  |