From ee967b1836a8b365cef23dc39f63c7f4899dd875 Mon Sep 17 00:00:00 2001 From: Anders Blomdell <anders.blomdell@control.lth.se> Date: Thu, 2 Jun 2016 14:09:49 +0200 Subject: [PATCH] Sanity check packets before trying to decode --- simulator/extctrl2014.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/simulator/extctrl2014.py b/simulator/extctrl2014.py index 56e5631..28e7029 100644 --- a/simulator/extctrl2014.py +++ b/simulator/extctrl2014.py @@ -156,15 +156,16 @@ class Packet: self.destination = buf.read(6) self.source = buf.read(6) self.eth_type = buf.read(2) - flags = buf.decode_byte() - self.flags = flags & flag_MASK - self.kind = flags & kind_MASK - self.channel = buf.decode_packed32() - self.cookie = buf.decode_uint32() - self.index = buf.decode_uint32() - self.frag_num = buf.decode_packed32() - frag_length = buf.decode_packed32() - self.data = buf.read(frag_length) + if self.eth_type == 'EX': + flags = buf.decode_byte() + self.flags = flags & flag_MASK + self.kind = flags & kind_MASK + self.channel = buf.decode_packed32() + self.cookie = buf.decode_uint32() + self.index = buf.decode_uint32() + self.frag_num = buf.decode_packed32() + frag_length = buf.decode_packed32() + self.data = buf.read(frag_length) def join(self, other): if self.destination != other.destination: -- GitLab