diff --git a/src/add-ons/kernel/network/protocols/tcp/TCPEndpoint.cpp b/src/add-ons/kernel/network/protocols/tcp/TCPEndpoint.cpp index ad0e06753e..d4115a2c56 100644 --- a/src/add-ons/kernel/network/protocols/tcp/TCPEndpoint.cpp +++ b/src/add-ons/kernel/network/protocols/tcp/TCPEndpoint.cpp @@ -813,7 +813,9 @@ TCPEndpoint::SendData(net_buffer *buffer) buffer->size, buffer->flags, fSendQueue.Size(), fSendQueue.Free()); T(APICall(this, "senddata")); - uint32 flags = buffer->flags; + const uint32 flags = buffer->flags; + if ((flags & ~(MSG_NOSIGNAL | MSG_DONTWAIT | MSG_OOB | MSG_EOF)) != 0) + return EOPNOTSUPP; if (fState == CLOSED) return ENOTCONN; @@ -935,6 +937,9 @@ TCPEndpoint::FillStat(net_stat *stat) status_t TCPEndpoint::ReadData(size_t numBytes, uint32 flags, net_buffer** _buffer) { + if ((flags & ~(MSG_DONTWAIT | MSG_WAITALL | MSG_PEEK)) != 0) + return EOPNOTSUPP; + MutexLocker locker(fLock); TRACE("ReadData(%" B_PRIuSIZE " bytes, flags %#" B_PRIx32 ")", numBytes,