diff --git a/src/base/bittorrent/torrentinfo.cpp b/src/base/bittorrent/torrentinfo.cpp index 7123a6e12..9a88c0ae6 100644 --- a/src/base/bittorrent/torrentinfo.cpp +++ b/src/base/bittorrent/torrentinfo.cpp @@ -363,8 +363,13 @@ TorrentInfo::PieceRange TorrentInfo::filePieces(const int fileIndex) const const lt::file_storage &files = nativeInfo()->files(); const auto fileSize = files.file_size(LTFileIndex {fileIndex}); const auto fileOffset = files.file_offset(LTFileIndex {fileIndex}); - return makeInterval(static_cast(fileOffset / pieceLength()), - static_cast((fileOffset + fileSize - 1) / pieceLength())); + + const int beginIdx = (fileOffset / pieceLength()); + const int endIdx = ((fileOffset + fileSize - 1) / pieceLength()); + + if (fileSize <= 0) + return {beginIdx, 0}; + return makeInterval(beginIdx, endIdx); } void TorrentInfo::renameFile(const int index, const QString &newPath)