Add support for missing gauth_number_of_chunks field. This Bug was

found by Irene Ruengeler.

MFC after: 1 week
This commit is contained in:
Michael Tuexen 2012-04-30 08:44:21 +00:00
parent e07f03e8fc
commit 5fc8d746ee
2 changed files with 4 additions and 0 deletions

View File

@ -660,6 +660,7 @@ struct sctp_authkeyid {
/* SCTP_PEER_AUTH_CHUNKS / SCTP_LOCAL_AUTH_CHUNKS */
struct sctp_authchunks {
sctp_assoc_t gauth_assoc_id;
uint32_t gauth_number_of_chunks;
uint8_t gauth_chunks[];
};

View File

@ -2879,6 +2879,7 @@ sctp_getopt(struct socket *so, int optname, void *optval, size_t *optsize,
} else {
/* copy in the chunks */
(void)sctp_serialize_auth_chunks(chklist, sac->gauth_chunks);
sac->gauth_number_of_chunks = (uint32_t) size;
*optsize = sizeof(struct sctp_authchunks) + size;
}
SCTP_TCB_UNLOCK(stcb);
@ -2897,6 +2898,7 @@ sctp_getopt(struct socket *so, int optname, void *optval, size_t *optsize,
} else {
/* copy in the chunks */
(void)sctp_serialize_auth_chunks(chklist, sac->gauth_chunks);
sac->gauth_number_of_chunks = (uint32_t) size;
*optsize = sizeof(struct sctp_authchunks) + size;
}
SCTP_INP_RUNLOCK(inp);
@ -2927,6 +2929,7 @@ sctp_getopt(struct socket *so, int optname, void *optval, size_t *optsize,
} else {
/* copy in the chunks */
(void)sctp_serialize_auth_chunks(chklist, sac->gauth_chunks);
sac->gauth_number_of_chunks = (uint32_t) size;
*optsize = sizeof(struct sctp_authchunks) + size;
}
SCTP_TCB_UNLOCK(stcb);