KEYS: Merge the type-specific data with the payload data
Merge the type-specific data with the payload data into one four-word chunk as it seems pointless to keep them separate. Use user_key_payload() for accessing the payloads of overloaded user-defined keys. Signed-off-by: David Howells <dhowells@redhat.com> cc: linux-cifs@vger.kernel.org cc: ecryptfs@vger.kernel.org cc: linux-ext4@vger.kernel.org cc: linux-f2fs-devel@lists.sourceforge.net cc: linux-nfs@vger.kernel.org cc: ceph-devel@vger.kernel.org cc: linux-ima-devel@lists.sourceforge.net
This commit is contained in:
@@ -148,10 +148,10 @@ static int rxrpc_preparse_xdr_rxkad(struct key_preparsed_payload *prep,
|
||||
token->kad->ticket[6], token->kad->ticket[7]);
|
||||
|
||||
/* count the number of tokens attached */
|
||||
prep->type_data[0] = (void *)((unsigned long)prep->type_data[0] + 1);
|
||||
prep->payload.data[1] = (void *)((unsigned long)prep->payload.data[1] + 1);
|
||||
|
||||
/* attach the data */
|
||||
for (pptoken = (struct rxrpc_key_token **)&prep->payload[0];
|
||||
for (pptoken = (struct rxrpc_key_token **)&prep->payload.data[0];
|
||||
*pptoken;
|
||||
pptoken = &(*pptoken)->next)
|
||||
continue;
|
||||
@@ -522,7 +522,7 @@ static int rxrpc_preparse_xdr_rxk5(struct key_preparsed_payload *prep,
|
||||
goto inval;
|
||||
|
||||
/* attach the payload */
|
||||
for (pptoken = (struct rxrpc_key_token **)&prep->payload[0];
|
||||
for (pptoken = (struct rxrpc_key_token **)&prep->payload.data[0];
|
||||
*pptoken;
|
||||
pptoken = &(*pptoken)->next)
|
||||
continue;
|
||||
@@ -764,10 +764,10 @@ static int rxrpc_preparse(struct key_preparsed_payload *prep)
|
||||
memcpy(&token->kad->ticket, v1->ticket, v1->ticket_length);
|
||||
|
||||
/* count the number of tokens attached */
|
||||
prep->type_data[0] = (void *)((unsigned long)prep->type_data[0] + 1);
|
||||
prep->payload.data[1] = (void *)((unsigned long)prep->payload.data[1] + 1);
|
||||
|
||||
/* attach the data */
|
||||
pp = (struct rxrpc_key_token **)&prep->payload[0];
|
||||
pp = (struct rxrpc_key_token **)&prep->payload.data[0];
|
||||
while (*pp)
|
||||
pp = &(*pp)->next;
|
||||
*pp = token;
|
||||
@@ -814,7 +814,7 @@ static void rxrpc_free_token_list(struct rxrpc_key_token *token)
|
||||
*/
|
||||
static void rxrpc_free_preparse(struct key_preparsed_payload *prep)
|
||||
{
|
||||
rxrpc_free_token_list(prep->payload[0]);
|
||||
rxrpc_free_token_list(prep->payload.data[0]);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -831,7 +831,7 @@ static int rxrpc_preparse_s(struct key_preparsed_payload *prep)
|
||||
if (prep->datalen != 8)
|
||||
return -EINVAL;
|
||||
|
||||
memcpy(&prep->type_data, prep->data, 8);
|
||||
memcpy(&prep->payload.data[2], prep->data, 8);
|
||||
|
||||
ci = crypto_alloc_blkcipher("pcbc(des)", 0, CRYPTO_ALG_ASYNC);
|
||||
if (IS_ERR(ci)) {
|
||||
@@ -842,7 +842,7 @@ static int rxrpc_preparse_s(struct key_preparsed_payload *prep)
|
||||
if (crypto_blkcipher_setkey(ci, prep->data, 8) < 0)
|
||||
BUG();
|
||||
|
||||
prep->payload[0] = ci;
|
||||
prep->payload.data[0] = ci;
|
||||
_leave(" = 0");
|
||||
return 0;
|
||||
}
|
||||
@@ -852,8 +852,8 @@ static int rxrpc_preparse_s(struct key_preparsed_payload *prep)
|
||||
*/
|
||||
static void rxrpc_free_preparse_s(struct key_preparsed_payload *prep)
|
||||
{
|
||||
if (prep->payload[0])
|
||||
crypto_free_blkcipher(prep->payload[0]);
|
||||
if (prep->payload.data[0])
|
||||
crypto_free_blkcipher(prep->payload.data[0]);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -861,7 +861,7 @@ static void rxrpc_free_preparse_s(struct key_preparsed_payload *prep)
|
||||
*/
|
||||
static void rxrpc_destroy(struct key *key)
|
||||
{
|
||||
rxrpc_free_token_list(key->payload.data);
|
||||
rxrpc_free_token_list(key->payload.data[0]);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -869,9 +869,9 @@ static void rxrpc_destroy(struct key *key)
|
||||
*/
|
||||
static void rxrpc_destroy_s(struct key *key)
|
||||
{
|
||||
if (key->payload.data) {
|
||||
crypto_free_blkcipher(key->payload.data);
|
||||
key->payload.data = NULL;
|
||||
if (key->payload.data[0]) {
|
||||
crypto_free_blkcipher(key->payload.data[0]);
|
||||
key->payload.data[0] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1070,7 +1070,7 @@ static long rxrpc_read(const struct key *key,
|
||||
size += 1 * 4; /* token count */
|
||||
|
||||
ntoks = 0;
|
||||
for (token = key->payload.data; token; token = token->next) {
|
||||
for (token = key->payload.data[0]; token; token = token->next) {
|
||||
toksize = 4; /* sec index */
|
||||
|
||||
switch (token->security_index) {
|
||||
@@ -1163,7 +1163,7 @@ static long rxrpc_read(const struct key *key,
|
||||
ENCODE(ntoks);
|
||||
|
||||
tok = 0;
|
||||
for (token = key->payload.data; token; token = token->next) {
|
||||
for (token = key->payload.data[0]; token; token = token->next) {
|
||||
toksize = toksizes[tok++];
|
||||
ENCODE(toksize);
|
||||
oldxdr = xdr;
|
||||
|
Reference in New Issue
Block a user