From c99b48aad3a1498770f11e4a811e85cdcf52bf60 Mon Sep 17 00:00:00 2001 From: Anders Persson Date: Wed, 21 Oct 2009 19:52:57 -0700 Subject: 6872588 tcp_sendmsg leaks mblks when ancillary data is passed along --- usr/src/uts/common/inet/tcp/tcp.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'usr/src/uts/common/inet/tcp/tcp.c') diff --git a/usr/src/uts/common/inet/tcp/tcp.c b/usr/src/uts/common/inet/tcp/tcp.c index a6f3ee8331..5939bed3b1 100644 --- a/usr/src/uts/common/inet/tcp/tcp.c +++ b/usr/src/uts/common/inet/tcp/tcp.c @@ -26625,9 +26625,10 @@ tcp_sendmsg(sock_lower_handle_t proto_handle, mblk_t *mp, struct nmsghdr *msg, ASSERT(connp->conn_upper_handle != NULL); if (msg->msg_controllen != 0) { + freemsg(mp); return (EOPNOTSUPP); - } + switch (DB_TYPE(mp)) { case M_DATA: tcp = connp->conn_tcp; @@ -26672,7 +26673,7 @@ tcp_sendmsg(sock_lower_handle_t proto_handle, mblk_t *mp, struct nmsghdr *msg, */ CONN_INC_REF(connp); - if (msg != NULL && msg->msg_flags & MSG_OOB) { + if (msg->msg_flags & MSG_OOB) { SQUEUE_ENTER_ONE(connp->conn_sqp, mp, tcp_output_urgent, connp, tcp_squeue_flag, SQTAG_TCP_OUTPUT); -- cgit v1.2.3