Skip to content

Commit ac5e7c5

Browse files
committed
Catch exceptions in CAN signal packets
1 parent b140d07 commit ac5e7c5

1 file changed

Lines changed: 11 additions & 3 deletions

File tree

scapy/layers/can.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,13 +132,21 @@ def __init__(self, name, default, start, size, scaling=1, unit="",
132132
@staticmethod
133133
def _msb_lookup(start):
134134
# type: (int) -> int
135-
return SignalField._lookup_table.index(start)
135+
try:
136+
return SignalField._lookup_table.index(start)
137+
except ValueError:
138+
raise Scapy_Exception("Only 64 bits for all SignalFields "
139+
"are supported")
136140

137141
@staticmethod
138142
def _lsb_lookup(start, size):
139143
# type: (int, int) -> int
140-
return SignalField._lookup_table[SignalField._msb_lookup(start) +
141-
size - 1]
144+
try:
145+
return SignalField._lookup_table[SignalField._msb_lookup(start) +
146+
size - 1]
147+
except IndexError:
148+
raise Scapy_Exception("Only 64 bits for all SignalFields "
149+
"are supported")
142150

143151
@staticmethod
144152
def _convert_to_unsigned(number, bit_length):

0 commit comments

Comments
 (0)