diff options
author | Wohlstand <admin@wohlnet.ru> | 2019-12-02 20:46:38 +0300 |
---|---|---|
committer | Wohlstand <admin@wohlnet.ru> | 2019-12-02 20:46:38 +0300 |
commit | 84af1cde8d624100b4396173688743368db64b58 (patch) | |
tree | b888752d082798a0539c1d6cf1b2340481b8f4eb /src/midi_sequencer_impl.hpp | |
parent | d21b27084532dca78f07ff87f578330f7c6f9755 (diff) | |
download | libADLMIDI-84af1cde8d624100b4396173688743368db64b58.tar.gz libADLMIDI-84af1cde8d624100b4396173688743368db64b58.tar.bz2 libADLMIDI-84af1cde8d624100b4396173688743368db64b58.zip |
MidiSequencer: Fixed possible UTF16 string length checking problems
Diffstat (limited to 'src/midi_sequencer_impl.hpp')
-rw-r--r-- | src/midi_sequencer_impl.hpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/midi_sequencer_impl.hpp b/src/midi_sequencer_impl.hpp index 4dc3013..ef4a3de 100644 --- a/src/midi_sequencer_impl.hpp +++ b/src/midi_sequencer_impl.hpp @@ -1265,12 +1265,14 @@ BW_MidiSequencer::MidiEvent BW_MidiSequencer::parseEvent(const uint8_t **pptr, c if(m_musCopyright.empty()) { m_musCopyright = std::string((const char *)evt.data.data(), evt.data.size()); + m_musCopyright.push_back('\0'); /* ending fix for UTF16 strings */ if(m_interface->onDebugMessage) m_interface->onDebugMessage(m_interface->onDebugMessage_userData, "Music copyright: %s", m_musCopyright.c_str()); } else if(m_interface->onDebugMessage) { std::string str((const char *)evt.data.data(), evt.data.size()); + str.push_back('\0'); /* ending fix for UTF16 strings */ m_interface->onDebugMessage(m_interface->onDebugMessage_userData, "Extra copyright event: %s", str.c_str()); } } @@ -1279,12 +1281,14 @@ BW_MidiSequencer::MidiEvent BW_MidiSequencer::parseEvent(const uint8_t **pptr, c if(m_musTitle.empty()) { m_musTitle = std::string((const char *)evt.data.data(), evt.data.size()); + m_musTitle.push_back('\0'); /* ending fix for UTF16 strings */ if(m_interface->onDebugMessage) m_interface->onDebugMessage(m_interface->onDebugMessage_userData, "Music title: %s", m_musTitle.c_str()); } else { std::string str((const char *)evt.data.data(), evt.data.size()); + str.push_back('\0'); /* ending fix for UTF16 strings */ m_musTrackTitles.push_back(str); if(m_interface->onDebugMessage) m_interface->onDebugMessage(m_interface->onDebugMessage_userData, "Track title: %s", str.c_str()); @@ -1295,6 +1299,7 @@ BW_MidiSequencer::MidiEvent BW_MidiSequencer::parseEvent(const uint8_t **pptr, c if(m_interface->onDebugMessage) { std::string str((const char *)evt.data.data(), evt.data.size()); + str.push_back('\0'); /* ending fix for UTF16 strings */ m_interface->onDebugMessage(m_interface->onDebugMessage_userData, "Instrument: %s", str.c_str()); } } |