From 69e3c39f81ccc3073f108c08d02ef521c46e39a0 Mon Sep 17 00:00:00 2001 From: Proto Plasm Date: Mon, 13 Apr 2020 08:43:53 -0700 Subject: [PATCH] Skip non-udp and zero-user-length packets. --- src/main.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main.cpp b/src/main.cpp index f6f944f..1c7f4ec 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -144,6 +144,10 @@ int SDL_main(int argc, char* argv[]) } pcpp::UdpLayer* udp = parsed.getLayerOfType(); + if (udp == NULL) { + return; + } + int len = udp->getDataLen() - udp->getHeaderLen(); uint8_t* data_start = udp->getDataPtr(udp->getHeaderLen()); @@ -333,6 +337,10 @@ void do_net(std::vector work, const char* packet_dump_path) int user_len = messageExtractor.GetMessageLength(); int channel = messageExtractor.GetChannelId(); + if (user_len <= sizeof(UNET::NetMessageFragmentedHeader)) { + continue; + } + if (channel == 0 || channel == 1 || channel == 2) // ReliableFragmented { UNET::NetMessageFragmentedHeader* hr = reinterpret_cast(user_data);