diff --git a/src/jamidht/conversationrepository.cpp b/src/jamidht/conversationrepository.cpp index ab394805149287f7d254679891516756d79fe781..899d574cd88fa91059219c7f6637720c54be6973 100644 --- a/src/jamidht/conversationrepository.cpp +++ b/src/jamidht/conversationrepository.cpp @@ -189,12 +189,17 @@ public: std::map<std::string, std::vector<DeviceId>> devices() const { + auto repo = repository(); + if (!repo) + return {}; std::map<std::string, std::vector<DeviceId>> memberDevices; std::string deviceDir = fmt::format("{}devices/", - git_repository_workdir(repository().get())); + git_repository_workdir(repo.get())); for (const auto& file : fileutils::readDirectory(deviceDir)) { auto cert = std::make_shared<dht::crypto::Certificate>( fileutils::loadFile(deviceDir + file)); + if (!cert) + continue; memberDevices[cert->getIssuerUID()].emplace_back(cert->getPublicKey().getLongId()); } return memberDevices;