Skip to content

Commit 8de66a2

Browse files
authored
Handle partial message in ReadDeviceInformationResponse (#1738)
1 parent 85890dc commit 8de66a2

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

pymodbus/mei_message.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -125,11 +125,14 @@ def calculateRtuFrameSize(cls, buffer):
125125
size = 8 # skip the header information
126126
count = int(buffer[7])
127127

128-
while count > 0:
129-
_, object_length = struct.unpack(">BB", buffer[size : size + 2])
130-
size += object_length + 2
131-
count -= 1
132-
return size + 2
128+
try:
129+
while count > 0:
130+
_, object_length = struct.unpack(">BB", buffer[size : size + 2])
131+
size += object_length + 2
132+
count -= 1
133+
return size + 2
134+
except struct.error as exc:
135+
raise IndexError from exc
133136

134137
def __init__(self, read_code=None, information=None, **kwargs):
135138
"""Initialize a new instance.

0 commit comments

Comments
 (0)