From 9e76cfbddeab9eb6357e0ed960e6a79b5a7d673c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20St=C3=A4ck?= Date: Thu, 15 Aug 2019 08:04:41 +0200 Subject: [PATCH] Upper bound on length of version string for sysex message --- NuEVI/settings.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/NuEVI/settings.cpp b/NuEVI/settings.cpp index 4562bff..d3eab09 100644 --- a/NuEVI/settings.cpp +++ b/NuEVI/settings.cpp @@ -367,13 +367,14 @@ bool receiveSysexSettings(const uint8_t* data, const uint16_t length) { //Send EEPROM and firmware versions void sendSysexVersion() { char sysexMessage[] = "vvvNuEVIc04eevvvvvvvv"; //Placeholders for vendor and code + uint8_t fwStrLen = min(strlen(FIRMWARE_VERSION), 8); //Limit firmware version string to 8 bytes memcpy(sysexMessage, sysex_id, 3); - memcpy(sysexMessage+13, FIRMWARE_VERSION, min(strlen(FIRMWARE_VERSION), 8)); + memcpy(sysexMessage+13, FIRMWARE_VERSION, fwStrLen); *(uint16_t*)(sysexMessage+11) = convertToMidiValue(EEPROM_VERSION); - uint8_t message_length = 13+strlen(FIRMWARE_VERSION); + uint8_t message_length = 13+fwStrLen; usbMIDI.sendSysEx(message_length, (const uint8_t *)sysexMessage); }