-
-
Notifications
You must be signed in to change notification settings - Fork 109
Open
Labels
Description
Describe the bug
The library seems to crash on certain mDNS datagrams.
Error log
[5/27/2025, 3:06:23 AM] [Apple TV Enhanced] [E] Platform: Error: Unable to execute request G: exception during data handling
Traceback (most recent call last):
File "/var/lib/homebridge/appletv-enhanced/.venv/lib/python3.12/site-packages/pyatv/core/mdns.py", line 306, in datagram_received
delegate.datagram_received(data, addr)
File "/var/lib/homebridge/appletv-enhanced/.venv/lib/python3.12/site-packages/pyatv/core/mdns.py", line 432, in datagram_received
decoded_msg = DnsMessage().unpack(data)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/lib/homebridge/appletv-enhanced/.venv/lib/python3.12/site-packages/pyatv/support/dns.py", line 377, in unpack
header = DnsHeader.unpack_read(buffer)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/lib/homebridge/appletv-enhanced/.venv/lib/python3.12/site-packages/pyatv/support/dns.py", line 298, in unpack_read
return cls._make(unpack_stream(">6H", buffer))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/lib/homebridge/appletv-enhanced/.venv/lib/python3.12/site-packages/pyatv/support/dns.py", line 25, in unpack_stream
return struct.unpack(fmt, buffer.read(size))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
struct.error: unpack requires a buffer of 12 bytes
How to reproduce the bug?
I'm not sure which DNS entry this is. I've enabled verbose logging and hopefully it will include some more information.
What is expected behavior?
Shouldn't crash.
Operating System
Linux
Python
3.9
pyatv
0.16.0
Device
ATV HD 4th gen tvOS 18
Additional context
Using as part of homebridge-appletv-enhanced.