Version 5.6.2
This update contains a security-related bug fix and an enhancement for playing long sessions, and is recommended for all users.
Please refer to the release notes for Version 5.6.1 and 5.6 for full updating information.
Security-Related Bug Fix
- Malformed DACP TLV (Tag-Length-Value) tokens could generate out-of-bounds (OOB) reads in Shairport Sync.
The bug fix was to improve checking of DACP TLV payloads. Thanks to memoriaru for their report.
Enhancement
-
This enhancement changes how frames of audio are referenced, so that long sessions (greater than about 12.5 hours) do not go silent due to signed 32-bit integer sign overflow.
Background: AirPlay associates a 32-bit RTP timestamp, a timing reference number, with every audio frame.
After playing 2^31 - 1 frames of buffered audio -- about 12.5 hours at 48,000 frames per second --
the total number of frames played exceeds 2^31 -1 and goes negative due to sign overflow. Timing calculations fail,
causing frames to be dropped and the player to go silent.The enhancement develops 64-bit timestamps from RTP timestamps of the frames as they are processed in preparation for playing. Many thanks to Martin Man for their patient troubleshooting, PR and initial report.