aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet/sctp_pcb.h
diff options
context:
space:
mode:
authorMichael Tuexen <tuexen@FreeBSD.org>2019-07-14 12:04:39 +0000
committerMichael Tuexen <tuexen@FreeBSD.org>2019-07-14 12:04:39 +0000
commit8a956abe12c6b7e1a76e849dd6323910da998da9 (patch)
treeb63b937b3d1dbd68c10a4dcd5577593d782cc2af /sys/netinet/sctp_pcb.h
parent94c15665a554014572d5d837640bf9154474617c (diff)
downloadsrc-8a956abe12c6b7e1a76e849dd6323910da998da9.tar.gz
src-8a956abe12c6b7e1a76e849dd6323910da998da9.zip
When calling sctp_initialize_auth_params(), the inp must have at
least a read lock. To avoid more complex locking dances, just call it in sctp_aloc_assoc() when the write lock is still held. Reported by: syzbot+08a486f7e6966f1c3cfb@syzkaller.appspotmail.com MFC after: 1 week
Notes
Notes: svn path=/head/; revision=349986
Diffstat (limited to 'sys/netinet/sctp_pcb.h')
-rw-r--r--sys/netinet/sctp_pcb.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/netinet/sctp_pcb.h b/sys/netinet/sctp_pcb.h
index 5b41ae8a6cff..0f5aca88ed47 100644
--- a/sys/netinet/sctp_pcb.h
+++ b/sys/netinet/sctp_pcb.h
@@ -578,9 +578,13 @@ int sctp_is_address_on_local_host(struct sockaddr *addr, uint32_t vrf_id);
void sctp_inpcb_free(struct sctp_inpcb *, int, int);
+#define SCTP_DONT_INITIALIZE_AUTH_PARAMS 0
+#define SCTP_INITIALIZE_AUTH_PARAMS 1
+
struct sctp_tcb *
sctp_aloc_assoc(struct sctp_inpcb *, struct sockaddr *,
- int *, uint32_t, uint32_t, uint16_t, uint16_t, struct thread *);
+ int *, uint32_t, uint32_t, uint16_t, uint16_t, struct thread *,
+ int);
int sctp_free_assoc(struct sctp_inpcb *, struct sctp_tcb *, int, int);