diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-04-07 16:20:00 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-04-07 16:20:00 +0200 |
commit | c210d8c434d5fa8f6c56bbbdb0cb993ddd697213 (patch) | |
tree | f3f62d8b6ff8665605d3c22997c0e58f233f20c9 /examples | |
parent | 41c69690d866414cf90d603629fd488ba9a981b5 (diff) | |
download | sink-c210d8c434d5fa8f6c56bbbdb0cb993ddd697213.tar.gz sink-c210d8c434d5fa8f6c56bbbdb0cb993ddd697213.zip |
Avoid crashing if we fail to resolve the local id.
Diffstat (limited to 'examples')
-rw-r--r-- | examples/imapresource/imapresource.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/examples/imapresource/imapresource.cpp b/examples/imapresource/imapresource.cpp index 50deacd..afa72fa 100644 --- a/examples/imapresource/imapresource.cpp +++ b/examples/imapresource/imapresource.cpp | |||
@@ -400,6 +400,9 @@ public: | |||
400 | QByteArray getFolderFromLocalId(const QByteArray &id) | 400 | QByteArray getFolderFromLocalId(const QByteArray &id) |
401 | { | 401 | { |
402 | auto mailRemoteId = syncStore().resolveLocalId(ApplicationDomain::getTypeName<ApplicationDomain::Mail>(), id); | 402 | auto mailRemoteId = syncStore().resolveLocalId(ApplicationDomain::getTypeName<ApplicationDomain::Mail>(), id); |
403 | if (mailRemoteId.isEmpty()) { | ||
404 | return {}; | ||
405 | } | ||
403 | return folderIdFromMailRid(mailRemoteId); | 406 | return folderIdFromMailRid(mailRemoteId); |
404 | } | 407 | } |
405 | 408 | ||
@@ -419,6 +422,10 @@ public: | |||
419 | if (isIndividualMailSync(request)) { | 422 | if (isIndividualMailSync(request)) { |
420 | auto newId = request.query.ids().first(); | 423 | auto newId = request.query.ids().first(); |
421 | auto requestFolder = getFolderFromLocalId(newId); | 424 | auto requestFolder = getFolderFromLocalId(newId); |
425 | if (requestFolder.isEmpty()) { | ||
426 | SinkWarningCtx(mLogCtx) << "Failed to find folder for local id. Ignoring request: " << request.query; | ||
427 | return; | ||
428 | } | ||
422 | for (auto &r : queue) { | 429 | for (auto &r : queue) { |
423 | if (isIndividualMailSync(r)) { | 430 | if (isIndividualMailSync(r)) { |
424 | auto queueFolder = getFolderFromLocalId(r.query.ids().first()); | 431 | auto queueFolder = getFolderFromLocalId(r.query.ids().first()); |