integrity: use kernel_read_file_from_path() to read x509 certs
The CONFIG_IMA_LOAD_X509 and CONFIG_EVM_LOAD_X509 options permit loading x509 signed certificates onto the trusted keyrings without verifying the x509 certificate file's signature. This patch replaces the call to the integrity_read_file() specific function with the common kernel_read_file_from_path() function. To avoid verifying the file signature, this patch defines READING_X509_CERTFICATE. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
This commit is contained in:

zatwierdzone przez
Mimi Zohar

rodzic
f3cc6b25dc
commit
a7d3d0392a
@@ -199,55 +199,6 @@ int integrity_kernel_read(struct file *file, loff_t offset,
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* integrity_read_file - read entire file content into the buffer
|
||||
*
|
||||
* This is function opens a file, allocates the buffer of required
|
||||
* size, read entire file content to the buffer and closes the file
|
||||
*
|
||||
* It is used only by init code.
|
||||
*
|
||||
*/
|
||||
int __init integrity_read_file(const char *path, char **data)
|
||||
{
|
||||
struct file *file;
|
||||
loff_t size;
|
||||
char *buf;
|
||||
int rc = -EINVAL;
|
||||
|
||||
if (!path || !*path)
|
||||
return -EINVAL;
|
||||
|
||||
file = filp_open(path, O_RDONLY, 0);
|
||||
if (IS_ERR(file)) {
|
||||
rc = PTR_ERR(file);
|
||||
pr_err("Unable to open file: %s (%d)", path, rc);
|
||||
return rc;
|
||||
}
|
||||
|
||||
size = i_size_read(file_inode(file));
|
||||
if (size <= 0)
|
||||
goto out;
|
||||
|
||||
buf = kmalloc(size, GFP_KERNEL);
|
||||
if (!buf) {
|
||||
rc = -ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
|
||||
rc = integrity_kernel_read(file, 0, buf, size);
|
||||
if (rc == size) {
|
||||
*data = buf;
|
||||
} else {
|
||||
kfree(buf);
|
||||
if (rc >= 0)
|
||||
rc = -EIO;
|
||||
}
|
||||
out:
|
||||
fput(file);
|
||||
return rc;
|
||||
}
|
||||
|
||||
/*
|
||||
* integrity_load_keys - load integrity keys hook
|
||||
*
|
||||
|
Reference in New Issue
Block a user