# HG changeset patch # User Mychaela Falconia # Date 1694461948 0 # Node ID 842cff427588a22c80fd2595dda1fe54979f7c3f # Parent c0084bf153e514d06210f7273dcea69c95de8684 cp2102: fix Intel HEX read/write bugs diff -r c0084bf153e5 -r 842cff427588 cp2102/intel_hex_in.c --- a/cp2102/intel_hex_in.c Mon Sep 11 19:45:56 2023 +0000 +++ b/cp2102/intel_hex_in.c Mon Sep 11 19:52:28 2023 +0000 @@ -80,7 +80,7 @@ record_len = payload_len + 5; cp = linebuf + 1; csum = 0; - for (n = 0; n < payload_len; n++) { + for (n = 0; n < record_len; n++) { if (!isxdigit(cp[0]) || !isxdigit(cp[1])) goto inv_record; record[n] = decode_hex_byte(cp); diff -r c0084bf153e5 -r 842cff427588 cp2102/intel_hex_out.c --- a/cp2102/intel_hex_out.c Mon Sep 11 19:45:56 2023 +0000 +++ b/cp2102/intel_hex_out.c Mon Sep 11 19:52:28 2023 +0000 @@ -32,7 +32,7 @@ *dp++ = *sp++; csum = 0; for (bytecnt = 0; bytecnt < 20; bytecnt++) - csum = record[bytecnt]; + csum += record[bytecnt]; csum = 0x100 - csum; record[20] = csum; putc(':', outf);