From a517df9090887b60ab6ef4117fcd9ced169b8de1 Mon Sep 17 00:00:00 2001 From: Vinnie Falco Date: Fri, 6 Oct 2017 11:32:11 -0700 Subject: [PATCH] assert on empty buffer in websocket read --- CHANGELOG.md | 1 + include/boost/beast/websocket/impl/read.ipp | 4 ++++ 2 files changed, 5 insertions(+) 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);