From 007c307388684fefe3e67944ac24d84e3f9bdc18 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 b811e1f75..ebc961059 100644 --- a/src/qtlibtorrent/qbtsession.cpp +++ b/src/qtlibtorrent/qbtsession.cpp @@ -864,11 +864,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; }