Skip to content

Commit

Permalink
fix: check if message can be handled before attempting to deserialize
Browse files Browse the repository at this point in the history
Co-authored-by: UdjinM6 <[email protected]>
  • Loading branch information
2 people authored and PastaPastaPasta committed Mar 12, 2024
1 parent 9b0f15c commit afbae06
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions contrib/message-capture/message-capture-parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,19 +122,20 @@ def process_file(path: str, messages: List[Any], recv: bool, progress_bar: Optio
msg_ser = BytesIO(f_in.read(length))

# Determine message type
if msgtype not in MESSAGEMAP:
# Unrecognized message type
if msgtype not in MESSAGEMAP or MESSAGEMAP[msgtype] is None:
# Unrecognized or unhandled message type
try:
msgtype_tmp = msgtype.decode()
if not msgtype_tmp.isprintable():
raise UnicodeDecodeError
msg_dict["msgtype"] = msgtype_tmp
except UnicodeDecodeError:
msg_dict["msgtype"] = "UNREADABLE"
err_str = "Unrecognized" if msgtype not in MESSAGEMAP else "Unhandled"
msg_dict["body"] = msg_ser.read().hex()
msg_dict["error"] = "Unrecognized message type."
msg_dict["error"] = f"{err_str} message type"
messages.append(msg_dict)
print(f"WARNING - Unrecognized message type {msgtype} in {path}", file=sys.stderr)
print(f"WARNING - {msg_dict['error']} {msgtype} in {path}", file=sys.stderr)
continue

# Deserialize the message
Expand Down

0 comments on commit afbae06

Please sign in to comment.