From 35d104e1f67f32a1bcc40497e402c9dbfbbe16c2 Mon Sep 17 00:00:00 2001 From: Jan Holthuis Date: Sat, 15 Jan 2022 11:59:59 +0100 Subject: SeratoMarkers(2): Cast size to quint32 during serialization In Qt >= 6.0, the return value of QList::size() and QByteArray::length() is qsizetype (which may be 8 bytes on 64 bit platforms) instead of a regular 4 byte int. We add a typecast to quint32 to ensure that the size is always serialized correctly. --- src/track/serato/markers.cpp | 4 ++-- src/track/serato/markers2.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/track/serato/markers.cpp b/src/track/serato/markers.cpp index eda52ff80a..7cf933b5cb 100644 --- a/src/track/serato/markers.cpp +++ b/src/track/serato/markers.cpp @@ -569,7 +569,7 @@ QByteArray SeratoMarkers::dumpID3() const { QDataStream stream(&data, QIODevice::WriteOnly); stream.setByteOrder(QDataStream::BigEndian); - stream << kVersion << m_entries.size(); + stream << kVersion << static_cast(m_entries.size()); for (int i = 0; i < m_entries.size(); i++) { SeratoMarkersEntryPointer pEntry = m_entries.at(i); stream.writeRawData(pEntry->dumpID3(), kEntrySizeID3); @@ -593,7 +593,7 @@ QByteArray SeratoMarkers::dumpMP4() const { stream.setByteOrder(QDataStream::BigEndian); stream.writeRawData(kSeratoMarkersBase64EncodedPrefix.constData(), kSeratoMarkersBase64EncodedPrefix.length()); - stream << kVersion << m_entries.size(); + stream << kVersion << static_cast(m_entries.size()); for (int i = 0; i < m_entries.size(); i++) { SeratoMarkersEntryPointer pEntry = m_entries.at(i); stream.writeRawData(pEntry->dumpMP4(), kEntrySizeMP4); diff --git a/src/track/serato/markers2.cpp b/src/track/serato/markers2.cpp index 550c1bc906..07b4a62566 100644 --- a/src/track/serato/markers2.cpp +++ b/src/track/serato/markers2.cpp @@ -537,7 +537,7 @@ QByteArray SeratoMarkers2::dumpCommon() const { QByteArray entryData = entry->dump(); stream.writeRawData(entryName.constData(), entryName.length()); stream << static_cast('\x00') // terminating null-byte - << entryData.length(); + << static_cast(entryData.length()); stream.writeRawData(entryData.constData(), entryData.length()); } data.append('\0'); @@ -767,7 +767,7 @@ QByteArray SeratoMarkers2::dumpBase64Encoded() const { QByteArray entryData = entry->dump(); stream.writeRawData(entryName.constData(), entryName.length()); stream << static_cast(0x00) // terminating null-byte - << entryData.length(); + << static_cast(entryData.length()); stream.writeRawData(entryData.constData(), entryData.length()); } innerData.append('\0'); -- cgit v1.2.3