From ad9b4588f26d500b9fbdeaff3d66ec7dfd6d9c9d Mon Sep 17 00:00:00 2001 From: Ben Clayton Date: Tue, 26 May 2020 10:28:51 +0100 Subject: [PATCH] Fix `dap::Socket::read()` when `recv()` errors Identified by @kuafuwang. Fixes #29 --- src/socket.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/socket.cpp b/src/socket.cpp index f78f17a..506d7ae 100644 --- a/src/socket.cpp +++ b/src/socket.cpp @@ -158,7 +158,9 @@ class dap::Socket::Shared : public dap::ReaderWriter { if (s == InvalidSocket) { return 0; } - return recv(s, reinterpret_cast(buffer), static_cast(bytes), 0); + auto len = + recv(s, reinterpret_cast(buffer), static_cast(bytes), 0); + return (len < 0) ? 0 : len; } bool write(const void* buffer, size_t bytes) {