From c770decab7612006cd9e8bf8713c8d9498963b1b Mon Sep 17 00:00:00 2001 From: KubaPro010 Date: Fri, 20 Feb 2026 14:16:17 +0100 Subject: [PATCH] fix bug --- src/comms.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/comms.cpp b/src/comms.cpp index 6c52420..01c056a 100644 --- a/src/comms.cpp +++ b/src/comms.cpp @@ -937,7 +937,7 @@ uint8_t crc8(const uint8_t *data, size_t len) { return crc; } -bool execute_pc_command(uint8_t *data, uint8_t *&p, uint8_t *output, uint8_t len, uint32_t* baud_change) { +bool execute_pc_command(uint8_t *data, uint8_t *&p, uint8_t *output, uint8_t len, uint32_t* baud_change, size_t output_size) { switch (data[0]) { case 0: { // Set clock if(len < 5) { @@ -975,7 +975,7 @@ bool execute_pc_command(uint8_t *data, uint8_t *&p, uint8_t *output, uint8_t len auto out = Wire.endTransmission(false); uint8_t recvlen = Wire.requestFrom(addr, data[3+datalen]); - if ((p - output) + recvlen >= sizeof(output)) { + if ((p - output) + recvlen >= output_size) { *p++ = 2; return true; } @@ -1078,6 +1078,7 @@ void total_pc_control() { auto len = Serial.read(data, userlen); if(len != userlen) { error = true; + has_crc = false; *p++ = 0; } @@ -1093,7 +1094,7 @@ void total_pc_control() { *p++ = 1; } } - if(!error) error = execute_pc_command(data, p, output, len, &baud_change); + if(!error) error = execute_pc_command(data, p, output, len, &baud_change, sizeof(output)); done = true; } }