projects
/
platform
/
adaptation
/
renesas_rcar
/
renesas_kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'x86/mpx' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
[platform/adaptation/renesas_rcar/renesas_kernel.git]
/
security
/
keys
/
trusted.c
diff --git
a/security/keys/trusted.c
b/security/keys/trusted.c
index
3f163d0
..
e13fcf7
100644
(file)
--- a/
security/keys/trusted.c
+++ b/
security/keys/trusted.c
@@
-895,23
+895,24
@@
static struct trusted_key_payload *trusted_payload_alloc(struct key *key)
*
* On success, return 0. Otherwise return errno.
*/
*
* On success, return 0. Otherwise return errno.
*/
-static int trusted_instantiate(struct key *key,
const void *data,
- s
ize_t datalen
)
+static int trusted_instantiate(struct key *key,
+ s
truct key_preparsed_payload *prep
)
{
struct trusted_key_payload *payload = NULL;
struct trusted_key_options *options = NULL;
{
struct trusted_key_payload *payload = NULL;
struct trusted_key_options *options = NULL;
+ size_t datalen = prep->datalen;
char *datablob;
int ret = 0;
int key_cmd;
size_t key_len;
char *datablob;
int ret = 0;
int key_cmd;
size_t key_len;
- if (datalen <= 0 || datalen > 32767 || !data)
+ if (datalen <= 0 || datalen > 32767 || !
prep->
data)
return -EINVAL;
datablob = kmalloc(datalen + 1, GFP_KERNEL);
if (!datablob)
return -ENOMEM;
return -EINVAL;
datablob = kmalloc(datalen + 1, GFP_KERNEL);
if (!datablob)
return -ENOMEM;
- memcpy(datablob, data, datalen);
+ memcpy(datablob,
prep->
data, datalen);
datablob[datalen] = '\0';
options = trusted_options_alloc();
datablob[datalen] = '\0';
options = trusted_options_alloc();
@@
-981,17
+982,18
@@
static void trusted_rcu_free(struct rcu_head *rcu)
/*
* trusted_update - reseal an existing key with new PCR values
*/
/*
* trusted_update - reseal an existing key with new PCR values
*/
-static int trusted_update(struct key *key,
const void *data, size_t datalen
)
+static int trusted_update(struct key *key,
struct key_preparsed_payload *prep
)
{
struct trusted_key_payload *p = key->payload.data;
struct trusted_key_payload *new_p;
struct trusted_key_options *new_o;
{
struct trusted_key_payload *p = key->payload.data;
struct trusted_key_payload *new_p;
struct trusted_key_options *new_o;
+ size_t datalen = prep->datalen;
char *datablob;
int ret = 0;
if (!p->migratable)
return -EPERM;
char *datablob;
int ret = 0;
if (!p->migratable)
return -EPERM;
- if (datalen <= 0 || datalen > 32767 || !data)
+ if (datalen <= 0 || datalen > 32767 || !
prep->
data)
return -EINVAL;
datablob = kmalloc(datalen + 1, GFP_KERNEL);
return -EINVAL;
datablob = kmalloc(datalen + 1, GFP_KERNEL);
@@
-1008,7
+1010,7
@@
static int trusted_update(struct key *key, const void *data, size_t datalen)
goto out;
}
goto out;
}
- memcpy(datablob, data, datalen);
+ memcpy(datablob,
prep->
data, datalen);
datablob[datalen] = '\0';
ret = datablob_parse(datablob, new_p, new_o);
if (ret != Opt_update) {
datablob[datalen] = '\0';
ret = datablob_parse(datablob, new_p, new_o);
if (ret != Opt_update) {