summaryrefslogtreecommitdiff
path: root/src/core/file_sys
diff options
context:
space:
mode:
authorGravatar Zach Hilman2018-09-04 17:01:40 -0400
committerGravatar Zach Hilman2018-09-04 17:01:54 -0400
commitc913136eb215699f9c8d51a8fd56490b9df7657f (patch)
tree4564a416d8f200b69559164e2a50bdc690d49dbd /src/core/file_sys
parentdrd: Parse title ID from program metadata (diff)
downloadyuzu-c913136eb215699f9c8d51a8fd56490b9df7657f.tar.gz
yuzu-c913136eb215699f9c8d51a8fd56490b9df7657f.tar.xz
yuzu-c913136eb215699f9c8d51a8fd56490b9df7657f.zip
bktr: Fix bucket overlap error
Diffstat (limited to 'src/core/file_sys')
-rw-r--r--src/core/file_sys/content_archive.cpp3
-rw-r--r--src/core/file_sys/nca_patch.cpp4
-rw-r--r--src/core/file_sys/patch_manager.cpp3
-rw-r--r--src/core/file_sys/patch_manager.h1
-rw-r--r--src/core/file_sys/romfs_factory.cpp1
5 files changed, 6 insertions, 6 deletions
diff --git a/src/core/file_sys/content_archive.cpp b/src/core/file_sys/content_archive.cpp
index 1c093d94f..79bfb6fec 100644
--- a/src/core/file_sys/content_archive.cpp
+++ b/src/core/file_sys/content_archive.cpp
@@ -425,9 +425,6 @@ NCA::NCA(VirtualFile file_, VirtualFile bktr_base_romfs_, u64 bktr_base_ivfc_off
425 } else { 425 } else {
426 files.push_back(std::move(dec)); 426 files.push_back(std::move(dec));
427 romfs = files.back(); 427 romfs = files.back();
428 const u64 raw_size =
429 MEDIA_OFFSET_MULTIPLIER * (header.section_tables[i].media_end_offset -
430 header.section_tables[i].media_offset);
431 } 428 }
432 } else if (section.raw.header.filesystem_type == NCASectionFilesystemType::PFS0) { 429 } else if (section.raw.header.filesystem_type == NCASectionFilesystemType::PFS0) {
433 u64 offset = (static_cast<u64>(header.section_tables[i].media_offset) * 430 u64 offset = (static_cast<u64>(header.section_tables[i].media_offset) *
diff --git a/src/core/file_sys/nca_patch.cpp b/src/core/file_sys/nca_patch.cpp
index 1e93000d5..e0111bffc 100644
--- a/src/core/file_sys/nca_patch.cpp
+++ b/src/core/file_sys/nca_patch.cpp
@@ -50,7 +50,7 @@ size_t BKTR::Read(u8* data, size_t length, size_t offset) const {
50 } 50 }
51 51
52 if (!bktr_read) { 52 if (!bktr_read) {
53 ASSERT_MSG(section_offset > ivfc_offset, "Offset calculation negative."); 53 ASSERT_MSG(section_offset >= ivfc_offset, "Offset calculation negative.");
54 return base_romfs->Read(data, length, section_offset - ivfc_offset); 54 return base_romfs->Read(data, length, section_offset - ivfc_offset);
55 } 55 }
56 56
@@ -118,7 +118,7 @@ std::pair<size_t, size_t> BKTR::SearchBucketEntry(u64 offset, BlockType block,
118 118
119 size_t bucket_id = std::count_if(block.base_offsets.begin() + 1, 119 size_t bucket_id = std::count_if(block.base_offsets.begin() + 1,
120 block.base_offsets.begin() + block.number_buckets, 120 block.base_offsets.begin() + block.number_buckets,
121 [&offset](u64 base_offset) { return base_offset < offset; }); 121 [&offset](u64 base_offset) { return base_offset <= offset; });
122 122
123 const auto bucket = buckets[bucket_id]; 123 const auto bucket = buckets[bucket_id];
124 124
diff --git a/src/core/file_sys/patch_manager.cpp b/src/core/file_sys/patch_manager.cpp
index fa2fbe5e1..40675de35 100644
--- a/src/core/file_sys/patch_manager.cpp
+++ b/src/core/file_sys/patch_manager.cpp
@@ -2,10 +2,13 @@
2// Licensed under GPLv2 or any later version 2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included. 3// Refer to the license.txt file included.
4 4
5#include "core/file_sys/content_archive.h"
5#include "core/file_sys/control_metadata.h" 6#include "core/file_sys/control_metadata.h"
6#include "core/file_sys/patch_manager.h" 7#include "core/file_sys/patch_manager.h"
7#include "core/file_sys/registered_cache.h" 8#include "core/file_sys/registered_cache.h"
9#include "core/file_sys/romfs.h"
8#include "core/hle/service/filesystem/filesystem.h" 10#include "core/hle/service/filesystem/filesystem.h"
11#include "core/loader/loader.h"
9 12
10namespace FileSys { 13namespace FileSys {
11 14
diff --git a/src/core/file_sys/patch_manager.h b/src/core/file_sys/patch_manager.h
index c2626bc6c..28c7ae136 100644
--- a/src/core/file_sys/patch_manager.h
+++ b/src/core/file_sys/patch_manager.h
@@ -8,7 +8,6 @@
8#include <string> 8#include <string>
9#include "common/common_types.h" 9#include "common/common_types.h"
10#include "core/file_sys/nca_metadata.h" 10#include "core/file_sys/nca_metadata.h"
11#include "core/file_sys/romfs_factory.h"
12#include "core/file_sys/vfs.h" 11#include "core/file_sys/vfs.h"
13 12
14namespace FileSys { 13namespace FileSys {
diff --git a/src/core/file_sys/romfs_factory.cpp b/src/core/file_sys/romfs_factory.cpp
index 33ec62491..d9d90939e 100644
--- a/src/core/file_sys/romfs_factory.cpp
+++ b/src/core/file_sys/romfs_factory.cpp
@@ -12,6 +12,7 @@
12#include "core/file_sys/patch_manager.h" 12#include "core/file_sys/patch_manager.h"
13#include "core/file_sys/registered_cache.h" 13#include "core/file_sys/registered_cache.h"
14#include "core/file_sys/romfs_factory.h" 14#include "core/file_sys/romfs_factory.h"
15#include "core/hle/kernel/process.h"
15#include "core/hle/service/filesystem/filesystem.h" 16#include "core/hle/service/filesystem/filesystem.h"
16#include "core/loader/loader.h" 17#include "core/loader/loader.h"
17 18