net: sctp: sctp_auth_make_key_vector: use sctp_auth_create_key
In sctp_auth_make_key_vector, we allocate a temporary sctp_auth_bytes structure with kmalloc instead of the sctp_auth_create_key allocator. Change this to sctp_auth_create_key as it is the case everywhere else, so that we also can properly free it via sctp_auth_key_put. This makes it easier for future code changes in the structure and allocator itself, since a single API is consistently used for this purpose. Also, by using sctp_auth_create_key we're doing sanity checks over the arguments. Signed-off-by: Daniel Borkmann <dborkman@redhat.com> Acked-by: Vlad Yasevich <vyasevich@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
3807ff5899
commit
03536e23ac
|
@ -209,12 +209,10 @@ static struct sctp_auth_bytes *sctp_auth_make_key_vector(
|
||||||
|
|
||||||
len = random_len + hmacs_len + chunks_len;
|
len = random_len + hmacs_len + chunks_len;
|
||||||
|
|
||||||
new = kmalloc(sizeof(struct sctp_auth_bytes) + len, gfp);
|
new = sctp_auth_create_key(len, gfp);
|
||||||
if (!new)
|
if (!new)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
new->len = len;
|
|
||||||
|
|
||||||
memcpy(new->data, random, random_len);
|
memcpy(new->data, random, random_len);
|
||||||
offset += random_len;
|
offset += random_len;
|
||||||
|
|
||||||
|
@ -353,8 +351,8 @@ static struct sctp_auth_bytes *sctp_auth_asoc_create_secret(
|
||||||
secret = sctp_auth_asoc_set_secret(ep_key, first_vector, last_vector,
|
secret = sctp_auth_asoc_set_secret(ep_key, first_vector, last_vector,
|
||||||
gfp);
|
gfp);
|
||||||
out:
|
out:
|
||||||
kfree(local_key_vector);
|
sctp_auth_key_put(local_key_vector);
|
||||||
kfree(peer_key_vector);
|
sctp_auth_key_put(peer_key_vector);
|
||||||
|
|
||||||
return secret;
|
return secret;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue