git: f21168e61404 - main - sctp: cleanup of error paths
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 28 May 2022 15:15:44 UTC
The branch main has been updated by tuexen:
URL: https://cgit.FreeBSD.org/src/commit/?id=f21168e61404eacc6ad58a74ed9af92a8e5072df
commit f21168e61404eacc6ad58a74ed9af92a8e5072df
Author: Michael Tuexen <tuexen@FreeBSD.org>
AuthorDate: 2022-05-28 15:15:14 +0000
Commit: Michael Tuexen <tuexen@FreeBSD.org>
CommitDate: 2022-05-28 15:15:14 +0000
sctp: cleanup of error paths
MFC after: 3 days
---
sys/netinet/sctp_output.c | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/sys/netinet/sctp_output.c b/sys/netinet/sctp_output.c
index b54e71a0f477..b8844fdc0295 100644
--- a/sys/netinet/sctp_output.c
+++ b/sys/netinet/sctp_output.c
@@ -12250,8 +12250,9 @@ sctp_copy_resume(struct uio *uio,
m = m_uiotombuf(uio, M_WAITOK, max_send_len, 0,
(M_PKTHDR | (user_marks_eor ? M_EOR : 0)));
if (m == NULL) {
- SCTP_LTRACE_ERR_RET(NULL, NULL, NULL, SCTP_FROM_SCTP_OUTPUT, ENOBUFS);
- *error = ENOBUFS;
+ /* The only possible error is EFAULT. */
+ SCTP_LTRACE_ERR_RET(NULL, NULL, NULL, SCTP_FROM_SCTP_OUTPUT, EFAULT);
+ *error = EFAULT;
} else {
*sndout = m_length(m, NULL);
*new_tail = m_last(m);
@@ -12264,13 +12265,12 @@ sctp_copy_one(struct sctp_stream_queue_pending *sp,
struct uio *uio,
int resv_upfront)
{
- sp->data = m_uiotombuf(uio, M_WAITOK, sp->length,
- resv_upfront, 0);
+ sp->data = m_uiotombuf(uio, M_WAITOK, sp->length, resv_upfront, 0);
if (sp->data == NULL) {
- SCTP_LTRACE_ERR_RET(NULL, NULL, NULL, SCTP_FROM_SCTP_OUTPUT, ENOBUFS);
- return (ENOBUFS);
+ /* The only possible error is EFAULT. */
+ SCTP_LTRACE_ERR_RET(NULL, NULL, NULL, SCTP_FROM_SCTP_OUTPUT, EFAULT);
+ return (EFAULT);
}
-
sp->tail_mbuf = m_last(sp->data);
return (0);
}
@@ -12321,7 +12321,6 @@ sctp_copy_it_in(struct sctp_tcb *stcb,
sp->context = srcv->sinfo_context;
sp->fsn = 0;
(void)SCTP_GETTIME_TIMEVAL(&sp->ts);
-
sp->sid = srcv->sinfo_stream;
sp->length = (uint32_t)min(uio->uio_resid, max_send_len);
if ((sp->length == (uint32_t)uio->uio_resid) &&
@@ -12519,13 +12518,13 @@ sctp_lower_sosend(struct socket *so,
error = EINVAL;
goto out_unlocked;
}
- atomic_add_int(&inp->total_sends, 1);
if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) &&
SCTP_IS_LISTENING(inp)) {
/* The listener can NOT send. */
error = EINVAL;
goto out_unlocked;
}
+ atomic_add_int(&inp->total_sends, 1);
if (srcv != NULL) {
sinfo_flags = srcv->sinfo_flags;