Explorar o código

file_sys: tolerate empty NCA

Liam %!s(int64=2) %!d(string=hai) anos
pai
achega
775bf8e215

+ 1 - 1
src/core/file_sys/card_image.cpp

@@ -185,7 +185,7 @@ u32 XCI::GetSystemUpdateVersion() {
     for (const auto& update_file : update->GetFiles()) {
         NCA nca{update_file};
 
-        if (nca.GetStatus() != Loader::ResultStatus::Success) {
+        if (nca.GetStatus() != Loader::ResultStatus::Success || nca.GetSubdirectories().empty()) {
             continue;
         }
 

+ 1 - 1
src/core/file_sys/registered_cache.cpp

@@ -418,7 +418,7 @@ void RegisteredCache::ProcessFiles(const std::vector<NcaID>& ids) {
             continue;
         const auto nca = std::make_shared<NCA>(parser(file, id));
         if (nca->GetStatus() != Loader::ResultStatus::Success ||
-            nca->GetType() != NCAContentType::Meta) {
+            nca->GetType() != NCAContentType::Meta || nca->GetSubdirectories().empty()) {
             continue;
         }
 

+ 1 - 1
src/core/file_sys/submission_package.cpp

@@ -249,7 +249,7 @@ void NSP::ReadNCAs(const std::vector<VirtualFile>& files) {
         }
 
         const auto nca = std::make_shared<NCA>(outer_file);
-        if (nca->GetStatus() != Loader::ResultStatus::Success) {
+        if (nca->GetStatus() != Loader::ResultStatus::Success || nca->GetSubdirectories().empty()) {
             program_status[nca->GetTitleId()] = nca->GetStatus();
             continue;
         }