diff options
Diffstat (limited to 'net/sctp')
-rw-r--r-- | net/sctp/auth.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/net/sctp/auth.c b/net/sctp/auth.c index 94a12de58691..5ec7509bb2c9 100644 --- a/net/sctp/auth.c +++ b/net/sctp/auth.c | |||
@@ -209,12 +209,10 @@ static struct sctp_auth_bytes *sctp_auth_make_key_vector( | |||
209 | 209 | ||
210 | len = random_len + hmacs_len + chunks_len; | 210 | len = random_len + hmacs_len + chunks_len; |
211 | 211 | ||
212 | new = kmalloc(sizeof(struct sctp_auth_bytes) + len, gfp); | 212 | new = sctp_auth_create_key(len, gfp); |
213 | if (!new) | 213 | if (!new) |
214 | return NULL; | 214 | return NULL; |
215 | 215 | ||
216 | new->len = len; | ||
217 | |||
218 | memcpy(new->data, random, random_len); | 216 | memcpy(new->data, random, random_len); |
219 | offset += random_len; | 217 | offset += random_len; |
220 | 218 | ||
@@ -353,8 +351,8 @@ static struct sctp_auth_bytes *sctp_auth_asoc_create_secret( | |||
353 | secret = sctp_auth_asoc_set_secret(ep_key, first_vector, last_vector, | 351 | secret = sctp_auth_asoc_set_secret(ep_key, first_vector, last_vector, |
354 | gfp); | 352 | gfp); |
355 | out: | 353 | out: |
356 | kfree(local_key_vector); | 354 | sctp_auth_key_put(local_key_vector); |
357 | kfree(peer_key_vector); | 355 | sctp_auth_key_put(peer_key_vector); |
358 | 356 | ||
359 | return secret; | 357 | return secret; |
360 | } | 358 | } |