diff options
author | Kitsune Ral <Kitsune-Ral@users.sf.net> | 2018-03-21 20:22:07 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-21 20:22:07 +0900 |
commit | ef6a94c567f316363bc713294969329dd7f50268 (patch) | |
tree | d94ee58a33c0b48593216f7d5da092b878392162 | |
parent | 3fc58ced0f65acae4696946a29ccda832263b4c2 (diff) | |
parent | 17d3333a8952e3bd2491080081d00a251157e34a (diff) | |
download | libquotient-ef6a94c567f316363bc713294969329dd7f50268.tar.gz libquotient-ef6a94c567f316363bc713294969329dd7f50268.zip |
Merge pull request #189 from r0kk3rz/master
fix error handling in loadState()
-rw-r--r-- | connection.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/connection.cpp b/connection.cpp index 7ba11145..b3f1ceb8 100644 --- a/connection.cpp +++ b/connection.cpp @@ -719,15 +719,18 @@ void Connection::loadState(const QUrl &fromFile) qCDebug(MAIN) << "No state cache file found"; return; } - file.open(QFile::ReadOnly); + if(!file.open(QFile::ReadOnly)) + { + qCWarning(MAIN) << "file " << file.fileName() << "failed to open for read"; + return; + } QByteArray data = file.readAll(); - QJsonParseError e; auto jsonDoc = d->cacheToBinary ? QJsonDocument::fromBinaryData(data) : - QJsonDocument::fromJson(data, &e); - if (e.error != QJsonParseError::NoError) + QJsonDocument::fromJson(data); + if (jsonDoc.isNull()) { - qCWarning(MAIN) << "Cache file not found or broken, discarding"; + qCWarning(MAIN) << "Cache file broken, discarding"; return; } auto actualCacheVersionMajor = |