From a0fb9531dbae9aa1a9ddea697f99758ca21ce36c Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Sat, 22 Oct 2022 21:25:44 -0700 Subject: [PATCH] FEXServer: Be robust against invalid packets. Chrome seems to like sending us invalid packets of data sometimes. With an invalid packet type just skip parsing the data entirely. Fixes an infinite loop in Vampire Survivors. --- Source/Tools/FEXServer/ProcessPipe.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Source/Tools/FEXServer/ProcessPipe.cpp b/Source/Tools/FEXServer/ProcessPipe.cpp index bce0e190a..d3501f423 100644 --- a/Source/Tools/FEXServer/ProcessPipe.cpp +++ b/Source/Tools/FEXServer/ProcessPipe.cpp @@ -431,6 +431,9 @@ namespace ProcessPipe { // Invalid case FEXServerClient::PacketType::TYPE_ERROR: default: + // Something sent us an invalid packet. To ensure we don't spin infinitely, consume all the data. + LogMan::Msg::EFmt("[FEXServer] InvalidPacket size received 0x{:x} bytes", CurrentRead - CurrentOffset); + CurrentOffset = CurrentRead; break; } }