From d2a6887248557540cfff16dd40b3110f74234a5c Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Fri, 24 Aug 2012 19:19:54 +0300 Subject: [PATCH] Fix crash when a fastresume file is empty (closes #52) --- src/qtlibtorrent/qbtsession.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/qtlibtorrent/qbtsession.cpp b/src/qtlibtorrent/qbtsession.cpp index 39dd76e76..f97c66a2f 100755 --- a/src/qtlibtorrent/qbtsession.cpp +++ b/src/qtlibtorrent/qbtsession.cpp @@ -869,11 +869,16 @@ bool QBtSession::loadFastResumeData(const QString &hash, std::vector &buf) const QString fastresume_path = QDir(fsutils::BTBackupLocation()).absoluteFilePath(hash+QString(".fastresume")); qDebug("Trying to load fastresume data: %s", qPrintable(fastresume_path)); QFile fastresume_file(fastresume_path); - if (!fastresume_file.open(QIODevice::ReadOnly)) return false; + if (fastresume_file.size() <= 0) + return false; + if (!fastresume_file.open(QIODevice::ReadOnly)) + return false; const QByteArray content = fastresume_file.readAll(); const int content_size = content.size(); + Q_ASSERT(content_size > 0); buf.resize(content_size); memcpy(&buf[0], content.data(), content_size); + fastresume_file.close(); return true; }