diff --git a/Source/Core/Core/IOS/ES/Formats.cpp b/Source/Core/Core/IOS/ES/Formats.cpp index 831488d2df..2e823bdc80 100644 --- a/Source/Core/Core/IOS/ES/Formats.cpp +++ b/Source/Core/Core/IOS/ES/Formats.cpp @@ -239,7 +239,7 @@ void TicketReader::SetBytes(std::vector&& bytes) bool TicketReader::IsValid() const { - return m_bytes.size() % sizeof(Ticket) == 0; + return !m_bytes.empty() && m_bytes.size() % sizeof(Ticket) == 0; } void TicketReader::DoState(PointerWrap& p) diff --git a/Source/Core/Core/IOS/ES/TitleManagement.cpp b/Source/Core/Core/IOS/ES/TitleManagement.cpp index 9975816a14..2de0ab7c40 100644 --- a/Source/Core/Core/IOS/ES/TitleManagement.cpp +++ b/Source/Core/Core/IOS/ES/TitleManagement.cpp @@ -317,17 +317,16 @@ IPCCommandResult ES::DeleteTitle(const IOCtlVRequest& request) return GetDefaultReply(ES_EINVAL); const std::string title_dir = Common::GetTitlePath(title_id, Common::FROM_SESSION_ROOT); - if (!File::IsDirectory(title_dir) || - !DiscIO::CNANDContentManager::Access().RemoveTitle(title_id, Common::FROM_SESSION_ROOT)) - { + if (!File::IsDirectory(title_dir)) return GetDefaultReply(FS_ENOENT); - } if (!File::DeleteDirRecursively(title_dir)) { ERROR_LOG(IOS_ES, "DeleteTitle: Failed to delete title directory: %s", title_dir.c_str()); return GetDefaultReply(FS_EACCESS); } + // XXX: ugly, but until we drop CNANDContentManager everywhere, this is going to be needed. + DiscIO::CNANDContentManager::Access().ClearCache(); return GetDefaultReply(IPC_SUCCESS); }