boot_serial; check CRC for RX only if all data has arrived.
Signed-off-by: Marko Kiiskila <marko@apache.org>
diff --git a/boot/boot_serial/src/boot_serial.c b/boot/boot_serial/src/boot_serial.c
index b734b6a..32b3eb1 100644
--- a/boot/boot_serial/src/boot_serial.c
+++ b/boot/boot_serial/src/boot_serial.c
@@ -563,6 +563,7 @@
int rc;
uint16_t crc;
uint16_t len;
+
#ifdef __ZEPHYR__
int err;
err = base64_decode( &out[*out_off], maxout - *out_off, &rc, in, inlen - 2);
@@ -582,7 +583,9 @@
if (*out_off > sizeof(uint16_t)) {
len = ntohs(*(uint16_t *)out);
-
+ if (len != *out_off - sizeof(uint16_t)) {
+ return 0;
+ }
len = min(len, *out_off - sizeof(uint16_t));
out += sizeof(uint16_t);
#ifdef __ZEPHYR__