Use a consistent type for the number of HMAC algorithms.
This fixes a bug which resulted in a warning on the userland stack, when compiled on Windows. Thanks to Peter Kasting from Google for reporting the issue and provinding a potential fix. MFC after: 3 days
This commit is contained in:
parent
667eb48763
commit
47b80412cd
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=271673
@ -631,7 +631,7 @@ sctp_copy_skeylist(const struct sctp_keyhead *src, struct sctp_keyhead *dest)
|
||||
|
||||
|
||||
sctp_hmaclist_t *
|
||||
sctp_alloc_hmaclist(uint8_t num_hmacs)
|
||||
sctp_alloc_hmaclist(uint16_t num_hmacs)
|
||||
{
|
||||
sctp_hmaclist_t *new_list;
|
||||
int alloc_size;
|
||||
@ -1438,8 +1438,8 @@ sctp_auth_get_cookie_params(struct sctp_tcb *stcb, struct mbuf *m,
|
||||
p_random = (struct sctp_auth_random *)phdr;
|
||||
random_len = plen - sizeof(*p_random);
|
||||
} else if (ptype == SCTP_HMAC_LIST) {
|
||||
int num_hmacs;
|
||||
int i;
|
||||
uint16_t num_hmacs;
|
||||
uint16_t i;
|
||||
|
||||
if (plen > sizeof(hmacs_store))
|
||||
break;
|
||||
|
@ -154,7 +154,7 @@ sctp_auth_key_release(struct sctp_tcb *stcb, uint16_t keyid,
|
||||
|
||||
|
||||
/* hmac list handling */
|
||||
extern sctp_hmaclist_t *sctp_alloc_hmaclist(uint8_t num_hmacs);
|
||||
extern sctp_hmaclist_t *sctp_alloc_hmaclist(uint16_t num_hmacs);
|
||||
extern void sctp_free_hmaclist(sctp_hmaclist_t * list);
|
||||
extern int sctp_auth_add_hmacid(sctp_hmaclist_t * list, uint16_t hmac_id);
|
||||
extern sctp_hmaclist_t *sctp_copy_hmaclist(sctp_hmaclist_t * list);
|
||||
|
@ -6509,8 +6509,8 @@ sctp_load_addresses_from_init(struct sctp_tcb *stcb, struct mbuf *m,
|
||||
}
|
||||
got_random = 1;
|
||||
} else if (ptype == SCTP_HMAC_LIST) {
|
||||
int num_hmacs;
|
||||
int i;
|
||||
uint16_t num_hmacs;
|
||||
uint16_t i;
|
||||
|
||||
if (plen > sizeof(hmacs_store))
|
||||
break;
|
||||
|
@ -4208,12 +4208,13 @@ sctp_setopt(struct socket *so, int optname, void *optval, size_t optsize,
|
||||
uint32_t i;
|
||||
|
||||
SCTP_CHECK_AND_CAST(shmac, optval, struct sctp_hmacalgo, optsize);
|
||||
if (optsize < sizeof(struct sctp_hmacalgo) + shmac->shmac_number_of_idents * sizeof(uint16_t)) {
|
||||
if ((optsize < sizeof(struct sctp_hmacalgo) + shmac->shmac_number_of_idents * sizeof(uint16_t)) ||
|
||||
(shmac->shmac_number_of_idents > 0xffff)) {
|
||||
SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
|
||||
error = EINVAL;
|
||||
break;
|
||||
}
|
||||
hmaclist = sctp_alloc_hmaclist(shmac->shmac_number_of_idents);
|
||||
hmaclist = sctp_alloc_hmaclist((uint16_t) shmac->shmac_number_of_idents);
|
||||
if (hmaclist == NULL) {
|
||||
SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOMEM);
|
||||
error = ENOMEM;
|
||||
|
Loading…
Reference in New Issue
Block a user