summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Lioncash2018-12-11 10:08:10 -0500
committerGravatar Lioncash2018-12-11 10:08:13 -0500
commit5c72aa7c4c09dcf98e10504f1a43c279d47264d8 (patch)
treeb2e397a03cf3f604cba8b054beb294d913a2ad0f /src
parentMerge pull request #1846 from lioncash/dir (diff)
downloadyuzu-5c72aa7c4c09dcf98e10504f1a43c279d47264d8.tar.gz
yuzu-5c72aa7c4c09dcf98e10504f1a43c279d47264d8.tar.xz
yuzu-5c72aa7c4c09dcf98e10504f1a43c279d47264d8.zip
patch_manager: Prevent use of a dangling pointer within PatchRomFS
fmt::format() returns a std::string instance by value, so calling .c_str() on it here is equivalent to doing: auto* ptr = std::string{}.c_str(); The data being pointed to isn't guaranteed to actually be valid anymore after that expression ends. Instead, we can just take the string as is, and provide the necessary formatting parameters.
Diffstat (limited to 'src')
-rw-r--r--src/core/file_sys/patch_manager.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/core/file_sys/patch_manager.cpp b/src/core/file_sys/patch_manager.cpp
index ecdc21c87..61706966e 100644
--- a/src/core/file_sys/patch_manager.cpp
+++ b/src/core/file_sys/patch_manager.cpp
@@ -286,13 +286,12 @@ static void ApplyLayeredFS(VirtualFile& romfs, u64 title_id, ContentRecordType t
286VirtualFile PatchManager::PatchRomFS(VirtualFile romfs, u64 ivfc_offset, ContentRecordType type, 286VirtualFile PatchManager::PatchRomFS(VirtualFile romfs, u64 ivfc_offset, ContentRecordType type,
287 VirtualFile update_raw) const { 287 VirtualFile update_raw) const {
288 const auto log_string = fmt::format("Patching RomFS for title_id={:016X}, type={:02X}", 288 const auto log_string = fmt::format("Patching RomFS for title_id={:016X}, type={:02X}",
289 title_id, static_cast<u8>(type)) 289 title_id, static_cast<u8>(type));
290 .c_str();
291 290
292 if (type == ContentRecordType::Program || type == ContentRecordType::Data) 291 if (type == ContentRecordType::Program || type == ContentRecordType::Data)
293 LOG_INFO(Loader, log_string); 292 LOG_INFO(Loader, "{}", log_string);
294 else 293 else
295 LOG_DEBUG(Loader, log_string); 294 LOG_DEBUG(Loader, "{}", log_string);
296 295
297 if (romfs == nullptr) 296 if (romfs == nullptr)
298 return romfs; 297 return romfs;