From f4c26cd3ed8fc4cbc087562c3051a9c5394c7a1c Mon Sep 17 00:00:00 2001 From: Nils Tonnaett Date: Fri, 16 Jan 2026 22:00:37 -0800 Subject: [PATCH] module-avb: check that ptp management request is complete --- src/modules/module-avb/gptp.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/modules/module-avb/gptp.c b/src/modules/module-avb/gptp.c index 0b5469259..bb19bb819 100644 --- a/src/modules/module-avb/gptp.c +++ b/src/modules/module-avb/gptp.c @@ -110,7 +110,8 @@ static bool update_ts_refclk(struct gptp *gptp) { req.management_message_length_be = htons(2); req.management_id_be = htons(PTP_MGMT_ID_PARENT_DATA_SET); - if (write(gptp->ptp_fd, &req, sizeof(req)) == -1) { + ret = write(gptp->ptp_fd, &req, sizeof(req)); + if (ret == -1) { pw_log_warn("Failed to send PTP management request: %m"); if (errno != ENOTCONN) return false; @@ -120,6 +121,10 @@ static bool update_ts_refclk(struct gptp *gptp) { pw_log_info("Reopened PTP management socket"); return false; } + if (ret != sizeof(req)) { + pw_log_warn("Incomplete PTP management request: %m"); + return false; + } uint8_t buf[sizeof(struct ptp_management_msg) + sizeof(struct ptp_parent_data_set)]; ret = read(gptp->ptp_fd, &buf, sizeof(buf));