0000 0000 0000 0000
(x2)
0000 0000 0000 0000
(x2)
None
// Undefined or Questionable Behavior Test of IPSwitch | |
// Written by DarkLordZach (C) 2018 | |
@nsobid-AABBCCDD // Pls don't actually patch something with this | |
// Goal: break everything | |
// Patch 1 | |
================================================================= | |
==4968==ERROR: LeakSanitizer: detected memory leaks | |
Direct leak of 8192 byte(s) in 2 object(s) allocated from: | |
#0 0x7f414fa95848 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xee848) | |
#1 0x7f41316a970b (<unknown module>) | |
Direct leak of 3976 byte(s) in 1 object(s) allocated from: | |
#0 0x7f414fa95a50 in calloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xeea50) | |
#1 0x7f4130fd3b7a in vmw_ioctl_init /home/zachhilman/mesa/src/gallium/winsys/svga/drm/vmw_screen_ioctl.c:1022 |
AddressSanitizer:DEADLYSIGNAL | |
================================================================= | |
==4792==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x7fbb3644e5e8 bp 0x7fbae4f168c0 sp 0x7fbae4f16028 T7) | |
==4792==The signal is caused by a WRITE memory access. | |
==4792==Hint: address points to the zero page. | |
#0 0x7fbb3644e5e7 (/lib/x86_64-linux-gnu/libc.so.6+0xbb5e7) | |
#1 0x7fbb396c2eb2 (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x3feb2) | |
#2 0x55f8f004614f in memcpy /usr/include/x86_64-linux-gnu/bits/string_fortified.h:34 | |
#3 0x55f8f004614f in Memory::ReadBlock(Kernel::Process const&, unsigned long, void*, unsigned long) /home/zachhilman/CLionProjects/yuzu/src/core/memory.cpp:418 | |
#4 0x55f8f057e8ac in RasterizerOpenGL::UploadMemory(unsigned char*, long, unsigned long, unsigned long, unsigned long) /home/zachhilman/CLionProjects/yuzu/src/video_core/renderer_opengl/gl_rasterizer.cpp:417 |
================== | |
WARNING: ThreadSanitizer: data race (pid=14219) | |
Read of size 1 at 0x7b04000098c0 by thread T2: | |
#0 strlen <null> (libtsan.so.0+0x315c5) | |
#1 pthread_setname_np <null> (libpthread.so.0+0x1391c) | |
#2 <null> <null> (libglib-2.0.so.0+0x73ded) | |
Previous write of size 8 at 0x7b04000098c0 by main thread (mutexes: write M221): | |
#0 malloc <null> (libtsan.so.0+0x2afa3) | |
#1 g_malloc <null> (libglib-2.0.so.0+0x51858) |
diff --git a/src/core/file_sys/mode.h b/src/core/file_sys/mode.h | |
index b436315..6d40ad5 100644 | |
--- a/src/core/file_sys/mode.h | |
+++ b/src/core/file_sys/mode.h | |
@@ -14,4 +14,6 @@ enum class Mode : u32 { | |
Append = 4, | |
}; | |
+constexpr Mode MODE_RW = static_cast<Mode>(3); | |
+ |
std::string mode_str; | |
u32 mode_flags = static_cast<u32>(mode); | |
// Calculate the correct open mode for the file. | |
if ((mode_flags & static_cast<u32>(Mode::Read)) && | |
(mode_flags & static_cast<u32>(Mode::Write))) { | |
if (mode_flags & static_cast<u32>(Mode::Append)) | |
mode_str = "a+"; | |
else | |
mode_str = "r+"; |
Function / Call Stack | CPU Time | Module | Function (Full) | Source File | Start Address | |
---|---|---|---|---|---|---|
fputs | 94.131 | ucrtbase.dll | fputs | [Unknown] | 0x180004a00 | |
SetConsoleTextAttribute | 90.1951 | KERNELBASE.dll | SetConsoleTextAttribute | [Unknown] | 0x1800770a0 | |
GetConsoleScreenBufferInfo | 69.6486 | KERNELBASE.dll | GetConsoleScreenBufferInfo | [Unknown] | 0x180008870 | |
page_flush_tb_1_aarch64 | 46.7698 | unicorn.dll | page_flush_tb_1_aarch64 | translate-all.c | 0x6b089117 | |
invalidate_page_bitmap_aarch64 | 23.9179 | unicorn.dll | invalidate_page_bitmap_aarch64 | translate-all.c | 0x6b0890d0 | |
[Outside any known module] | 21.1967 | [Unknown] | [Outside any known module] | [Unknown] | 0 | |
memset | 18.1418 | msvcrt.dll | memset | [Unknown] | 0x110174600 | |
func@0x69c73ec0 | 16.9936 | nvoglv64.dll | func@0x69c73ec0 | [Unknown] | 0x69c73ec0 | |
tcg_constant_folding_aarch64 | 16.9699 | unicorn.dll | tcg_constant_folding_aarch64 | optimize.c | 0x6b07baa4 |
diff --git a/src/core/file_sys/vfs.cpp b/src/core/file_sys/vfs.cpp | |
index 82e8c604..a917fd0b 100644 | |
--- a/src/core/file_sys/vfs.cpp | |
+++ b/src/core/file_sys/vfs.cpp | |
@@ -53,7 +53,8 @@ std::shared_ptr<VfsFile> VfsDirectory::GetFileRelative(const filesystem::path& p | |
return GetFile(path.filename().string()); | |
auto parent = path.parent_path().string(); | |
- parent.replace(path.root_path().string().begin(), path.root_path().string().end(), ""); | |
+ auto root = path.root_path().string(); |
diff --git a/src/core/file_sys/vfs.cpp b/src/core/file_sys/vfs.cpp | |
index 82e8c604..a917fd0b 100644 | |
--- a/src/core/file_sys/vfs.cpp | |
+++ b/src/core/file_sys/vfs.cpp | |
@@ -53,7 +53,8 @@ std::shared_ptr<VfsFile> VfsDirectory::GetFileRelative(const filesystem::path& p | |
return GetFile(path.filename().string()); | |
auto parent = path.parent_path().string(); | |
- parent.replace(path.root_path().string().begin(), path.root_path().string().end(), ""); | |
+ auto root = path.root_path().string(); |