From: Tsuda Kageyu <tsuda.kageyu@gmail.com> Date: Fri, 28 Oct 2016 06:25:50 +0000 (+0900) Subject: Prevent overflows, just in case. X-Git-Tag: v1.12-beta-1~134 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=005441faaa373f93f30adede374aa7a7c6c7476f;p=taglib Prevent overflows, just in case. --- diff --git a/taglib/riff/rifffile.cpp b/taglib/riff/rifffile.cpp index 7ac2c034..f874f7ad 100644 --- a/taglib/riff/rifffile.cpp +++ b/taglib/riff/rifffile.cpp @@ -161,19 +161,19 @@ void RIFF::File::setChunkData(unsigned int i, const ByteVector &data) std::vector<Chunk>::iterator it = d->chunks.begin(); std::advance(it, i); - const int originalSize = it->size + it->padding; + const long long originalSize = static_cast<long long>(it->size) + it->padding; writeChunk(it->name, data, it->offset - 8, it->size + it->padding + 8); it->size = data.size(); - it->padding = data.size() % 1; + it->padding = data.size() % 2; - const int diff = it->size + it->padding - originalSize; + const long long diff = static_cast<long long>(it->size) + it->padding - originalSize; // Now update the internal offsets for(++it; it != d->chunks.end(); ++it) - it->offset += diff; + it->offset += static_cast<int>(diff); // Update the global size.