diff options
Diffstat (limited to 'src/core')
-rwxr-xr-x | src/core/imap/MCIMAPSession.cc | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/src/core/imap/MCIMAPSession.cc b/src/core/imap/MCIMAPSession.cc index b387e48f..ea3f7462 100755 --- a/src/core/imap/MCIMAPSession.cc +++ b/src/core/imap/MCIMAPSession.cc @@ -1431,19 +1431,21 @@ Array * /* IMAPFolder */ IMAPSession::fetchAllFolders(ErrorCode * pError) if (* pError == ErrorConnection) mShouldDisconnect = true; - bool hasInbox = false; - mc_foreacharray(IMAPFolder, folder, result) { - if (folder->path()->isEqual(MCSTR("INBOX"))) { - hasInbox = true; + if (result != NULL) { + bool hasInbox = false; + mc_foreacharray(IMAPFolder, folder, result) { + if (folder->path()->isEqual(MCSTR("INBOX"))) { + hasInbox = true; + } + } + + if (!hasInbox) { + r = mailimap_list(mImap, "", "INBOX", &imap_folders); + Array * inboxResult = resultsWithError(r, imap_folders, pError); + if (* pError == ErrorConnection) + mShouldDisconnect = true; + result->addObjectsFromArray(inboxResult); } - } - - if (!hasInbox) { - r = mailimap_list(mImap, "", "INBOX", &imap_folders); - Array * inboxResult = resultsWithError(r, imap_folders, pError); - if (* pError == ErrorConnection) - mShouldDisconnect = true; - result->addObjectsFromArray(inboxResult); } return result; |