From 8c5dcd2f49d67485e72113618a7df2a4c66537d4 Mon Sep 17 00:00:00 2001 From: Uwe Seimet <48174652+uweseimet@users.noreply.github.com> Date: Wed, 16 Nov 2022 10:01:51 +0100 Subject: [PATCH] Fix bogus "Invalid magic" message when socket connection is established (#988) --- cpp/rascsi/rascsi_service.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cpp/rascsi/rascsi_service.cpp b/cpp/rascsi/rascsi_service.cpp index 483f8274..fdd859f5 100644 --- a/cpp/rascsi/rascsi_service.cpp +++ b/cpp/rascsi/rascsi_service.cpp @@ -123,8 +123,12 @@ PbCommand RascsiService::ReadCommand(CommandContext& context) const // Read magic string vector magic(6); - if (const size_t bytes_read = context.GetSerializer().ReadBytes(fd, magic); - bytes_read != magic.size() || memcmp(magic.data(), "RASCSI", magic.size())) { + const size_t bytes_read = context.GetSerializer().ReadBytes(fd, magic); + if (!bytes_read) { + return command; + } + + if (bytes_read != magic.size() || memcmp(magic.data(), "RASCSI", magic.size())) { throw io_exception("Invalid magic"); }