aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Tuexen <tuexen@fh-muenster.de>2020-05-23 11:44:41 +0200
committerMichael Tuexen <tuexen@fh-muenster.de>2020-05-23 11:44:41 +0200
commit02768fc45268c653f8251bb8db648d2d4d63c03d (patch)
treee06d89431c47bfc6a395137bdcf012f5cf37b614
parent79ce3f1e13cd1cb283871ec5a9f90cf4062d91d4 (diff)
downloadusrsctp-02768fc45268c653f8251bb8db648d2d4d63c03d.tar.gz
Don't reference an stcb which is about to be freed.
-rwxr-xr-xusrsctplib/netinet/sctp_indata.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/usrsctplib/netinet/sctp_indata.h b/usrsctplib/netinet/sctp_indata.h
index 96c8bff..7386be8 100755
--- a/usrsctplib/netinet/sctp_indata.h
+++ b/usrsctplib/netinet/sctp_indata.h
@@ -34,7 +34,7 @@
#ifdef __FreeBSD__
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/sys/netinet/sctp_indata.h 351655 2019-09-01 10:39:16Z tuexen $");
+__FBSDID("$FreeBSD: head/sys/netinet/sctp_indata.h 361116 2020-05-16 19:26:39Z tuexen $");
#endif
#ifndef _NETINET_SCTP_INDATA_H_
@@ -70,6 +70,9 @@ sctp_build_readq_entry(struct sctp_tcb *stcb,
(_ctl)->data = dm; \
(_ctl)->stcb = (in_it); \
(_ctl)->port_from = (in_it)->rport; \
+ if ((in_it)->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) { \
+ (_ctl)->do_not_ref_stcb = 1; \
+ }\
} \
} while (0)