From ed4a7210d3e1be2dc470919a802e8f1084c71199 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Sun, 15 Jan 2023 14:24:32 -1000 Subject: [PATCH] Ensure we never write zero bytes (#4284) --- esphome/components/api/api_frame_helper.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/esphome/components/api/api_frame_helper.cpp b/esphome/components/api/api_frame_helper.cpp index b19a55764f..c18e045a99 100644 --- a/esphome/components/api/api_frame_helper.cpp +++ b/esphome/components/api/api_frame_helper.cpp @@ -616,6 +616,9 @@ APIError APINoiseFrameHelper::write_frame_(const uint8_t *data, size_t len) { struct iovec iov[2]; iov[0].iov_base = header; iov[0].iov_len = 3; + if (len == 0) { + return write_raw_(iov, 1); + } iov[1].iov_base = const_cast(data); iov[1].iov_len = len; @@ -913,6 +916,9 @@ APIError APIPlaintextFrameHelper::write_packet(uint16_t type, const uint8_t *pay struct iovec iov[2]; iov[0].iov_base = &header[0]; iov[0].iov_len = header.size(); + if (payload_len == 0) { + return write_raw_(iov, 1); + } iov[1].iov_base = const_cast(payload); iov[1].iov_len = payload_len;