diff options
Diffstat (limited to 'net')
| -rw-r--r-- | net/sctp/sm_make_chunk.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c index 556c495c6922..4fe1d6c863b1 100644 --- a/net/sctp/sm_make_chunk.c +++ b/net/sctp/sm_make_chunk.c | |||
| @@ -1275,7 +1275,12 @@ static sctp_cookie_param_t *sctp_pack_cookie(const struct sctp_endpoint *ep, | |||
| 1275 | unsigned int keylen; | 1275 | unsigned int keylen; |
| 1276 | char *key; | 1276 | char *key; |
| 1277 | 1277 | ||
| 1278 | headersize = sizeof(sctp_paramhdr_t) + SCTP_SECRET_SIZE; | 1278 | /* Header size is static data prior to the actual cookie, including |
| 1279 | * any padding. | ||
| 1280 | */ | ||
| 1281 | headersize = sizeof(sctp_paramhdr_t) + | ||
| 1282 | (sizeof(struct sctp_signed_cookie) - | ||
| 1283 | sizeof(struct sctp_cookie)); | ||
| 1279 | bodysize = sizeof(struct sctp_cookie) | 1284 | bodysize = sizeof(struct sctp_cookie) |
| 1280 | + ntohs(init_chunk->chunk_hdr->length) + addrs_len; | 1285 | + ntohs(init_chunk->chunk_hdr->length) + addrs_len; |
| 1281 | 1286 | ||
| @@ -1362,7 +1367,12 @@ struct sctp_association *sctp_unpack_cookie( | |||
| 1362 | struct sk_buff *skb = chunk->skb; | 1367 | struct sk_buff *skb = chunk->skb; |
| 1363 | struct timeval tv; | 1368 | struct timeval tv; |
| 1364 | 1369 | ||
| 1365 | headersize = sizeof(sctp_chunkhdr_t) + SCTP_SECRET_SIZE; | 1370 | /* Header size is static data prior to the actual cookie, including |
| 1371 | * any padding. | ||
| 1372 | */ | ||
| 1373 | headersize = sizeof(sctp_chunkhdr_t) + | ||
| 1374 | (sizeof(struct sctp_signed_cookie) - | ||
| 1375 | sizeof(struct sctp_cookie)); | ||
| 1366 | bodysize = ntohs(chunk->chunk_hdr->length) - headersize; | 1376 | bodysize = ntohs(chunk->chunk_hdr->length) - headersize; |
| 1367 | fixed_size = headersize + sizeof(struct sctp_cookie); | 1377 | fixed_size = headersize + sizeof(struct sctp_cookie); |
| 1368 | 1378 | ||
