diff options
author | Ingo Molnar <mingo@kernel.org> | 2017-11-14 07:21:44 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2017-11-14 07:21:44 +0100 |
commit | 050ab10a645097e47c01cfab3ccf24167e9b266b (patch) | |
tree | 686b17c63933f187305a87fba696415dccd032ae /security/integrity/digsig.c | |
parent | 9eb719855f6c9b21eb5889d9ac2ca1c60527ad89 (diff) | |
parent | b29c6ef7bb1257853c1e31616d84f55e561cf631 (diff) | |
download | talos-op-linux-050ab10a645097e47c01cfab3ccf24167e9b266b.tar.gz talos-op-linux-050ab10a645097e47c01cfab3ccf24167e9b266b.zip |
Merge branch 'linus' into core/objtool, to pick up dependent commits
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'security/integrity/digsig.c')
-rw-r--r-- | security/integrity/digsig.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/security/integrity/digsig.c b/security/integrity/digsig.c index 06554c448dce..6f9e4ce568cd 100644 --- a/security/integrity/digsig.c +++ b/security/integrity/digsig.c @@ -112,21 +112,25 @@ int __init integrity_init_keyring(const unsigned int id) int __init integrity_load_x509(const unsigned int id, const char *path) { key_ref_t key; - char *data; + void *data; + loff_t size; int rc; if (!keyring[id]) return -EINVAL; - rc = integrity_read_file(path, &data); - if (rc < 0) + rc = kernel_read_file_from_path(path, &data, &size, 0, + READING_X509_CERTIFICATE); + if (rc < 0) { + pr_err("Unable to open file: %s (%d)", path, rc); return rc; + } key = key_create_or_update(make_key_ref(keyring[id], 1), "asymmetric", NULL, data, - rc, + size, ((KEY_POS_ALL & ~KEY_POS_SETATTR) | KEY_USR_VIEW | KEY_USR_READ), KEY_ALLOC_NOT_IN_QUOTA); @@ -139,6 +143,6 @@ int __init integrity_load_x509(const unsigned int id, const char *path) key_ref_to_ptr(key)->description, path); key_ref_put(key); } - kfree(data); + vfree(data); return 0; } |