diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a3fc62a..ab43a2d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ Version 122: * Add test for issue 807 +* assert on empty buffer in websocket read -------------------------------------------------------------------------------- diff --git a/include/boost/beast/websocket/impl/read.ipp b/include/boost/beast/websocket/impl/read.ipp index c643e32a..6b13d037 100644 --- a/include/boost/beast/websocket/impl/read.ipp +++ b/include/boost/beast/websocket/impl/read.ipp @@ -428,6 +428,8 @@ operator()( // Read into caller's buffer BOOST_ASSERT(ws_.rd_remain_ > 0); BOOST_ASSERT(buffer_size(cb_) > 0); + BOOST_ASSERT(buffer_size(buffers_prefix( + clamp(ws_.rd_remain_), cb_)) > 0); BOOST_ASIO_CORO_YIELD ws_.stream_.async_read_some(buffers_prefix( clamp(ws_.rd_remain_), cb_), std::move(*this)); @@ -1145,6 +1147,8 @@ loop: // Read into caller's buffer BOOST_ASSERT(rd_remain_ > 0); BOOST_ASSERT(buffer_size(buffers) > 0); + BOOST_ASSERT(buffer_size(buffers_prefix( + clamp(rd_remain_), buffers)) > 0); auto const bytes_transferred = stream_.read_some(buffers_prefix( clamp(rd_remain_), buffers), ec);