Skip to content

Commit

Permalink
net: sctp: sctp_auth_make_key_vector: use sctp_auth_create_key
Browse files Browse the repository at this point in the history
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 <[email protected]>
Acked-by: Vlad Yasevich <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
borkmann authored and davem330 committed Feb 8, 2013
1 parent 3807ff5 commit 03536e2
Showing 1 changed file with 3 additions and 5 deletions.
8 changes: 3 additions & 5 deletions net/sctp/auth.c
Original file line number Diff line number Diff line change
Expand Up @@ -209,12 +209,10 @@ static struct sctp_auth_bytes *sctp_auth_make_key_vector(

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)
return NULL;

new->len = len;

memcpy(new->data, random, random_len);
offset += random_len;

Expand Down Expand Up @@ -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,
gfp);
out:
kfree(local_key_vector);
kfree(peer_key_vector);
sctp_auth_key_put(local_key_vector);
sctp_auth_key_put(peer_key_vector);

return secret;
}
Expand Down

0 comments on commit 03536e2

Please sign in to comment.