module: check packet size for CK messages

Check that the CK packet is large enough before we start reading its
contents.
This commit is contained in:
Wim Taymans 2026-05-15 10:45:14 +02:00
parent f3fc645496
commit 398f74571b

View file

@ -727,9 +727,6 @@ static void parse_apple_midi_cmd_in(struct impl *impl, bool ctrl, uint8_t *buffe
char addr[128];
uint16_t port = 0;
if ((size_t)len < sizeof(*hdr))
return;
initiator = ntohl(hdr->initiator);
ssrc = ntohl(hdr->ssrc);
@ -868,9 +865,14 @@ static void parse_apple_midi_cmd_ck(struct impl *impl, bool ctrl, uint8_t *buffe
struct rtp_apple_midi_ck reply;
struct session *sess;
uint64_t ts, t1, t2, t3;
uint32_t ssrc = ntohl(hdr->ssrc);
uint32_t ssrc;
struct timespec now;
if ((size_t)len < sizeof(*hdr))
return;
ssrc = ntohl(hdr->ssrc);
sess = find_session_by_ssrc(impl, ssrc);
if (sess == NULL) {
pw_log_warn("unknown SSRC %u", ssrc);