diff --git a/libfwupdplugin/fu-srec-firmware.c b/libfwupdplugin/fu-srec-firmware.c index 1382021b6..5a6071bf2 100644 --- a/libfwupdplugin/fu-srec-firmware.c +++ b/libfwupdplugin/fu-srec-firmware.c @@ -550,11 +550,9 @@ fu_srec_firmware_write(FuFirmware *firmware, GError **error) /* upgrade to longer addresses? */ if (fu_firmware_get_addr(firmware) >= (1ull << 24)) { kind_data = FU_FIRMWARE_SREC_RECORD_KIND_S3_DATA_32; - kind_coun = FU_FIRMWARE_SREC_RECORD_KIND_S6_COUNT_24; kind_term = FU_FIRMWARE_SREC_RECORD_KIND_S7_COUNT_32; /* intentional... */ } else if (fu_firmware_get_addr(firmware) >= (1ull << 16)) { kind_data = FU_FIRMWARE_SREC_RECORD_KIND_S2_DATA_24; - kind_coun = FU_FIRMWARE_SREC_RECORD_KIND_S6_COUNT_24; kind_term = FU_FIRMWARE_SREC_RECORD_KIND_S8_TERMINATION_24; } @@ -585,6 +583,9 @@ fu_srec_firmware_write(FuFirmware *firmware, GError **error) fu_chunk_get_data(chk), fu_chunk_get_data_sz(chk)); } + /* upgrade to longer format */ + if (chunks->len > G_MAXUINT16) + kind_coun = FU_FIRMWARE_SREC_RECORD_KIND_S6_COUNT_24; fu_srec_firmware_write_line(str, kind_coun, chunks->len, NULL, 0); } diff --git a/plugins/wacom-usb/fu-self-test.c b/plugins/wacom-usb/fu-self-test.c index cca19b39e..3359391a8 100644 --- a/plugins/wacom-usb/fu-self-test.c +++ b/plugins/wacom-usb/fu-self-test.c @@ -73,7 +73,7 @@ fu_wac_firmware_xml_func(void) g_assert_true(ret); csum1 = fu_firmware_get_checksum(firmware1, G_CHECKSUM_SHA1, &error); g_assert_no_error(error); - g_assert_cmpstr(csum1, ==, "bd734911430831127a7bba4664e212a56a2821bc"); + g_assert_cmpstr(csum1, ==, "346f6196449b356777cf241f6edb039d503b88a1"); /* ensure we can round-trip */ xml_out = fu_firmware_export_to_xml(firmware1, FU_FIRMWARE_EXPORT_FLAG_NONE, &error);