From fdd649e2ef56ea473e253511d35fe6c10e0fb241 Mon Sep 17 00:00:00 2001 From: David Marcec Date: Wed, 19 Dec 2018 12:52:32 +1100 Subject: Fixed uninitialized memory due to missing returns in canary Functions which are suppose to crash on non canary builds usually don't return anything which lead to uninitialized memory being used. --- src/video_core/renderer_opengl/gl_shader_decompiler.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_shader_decompiler.cpp') diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp index bd61af463..836865e14 100644 --- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp +++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp @@ -364,6 +364,7 @@ public: return value; default: UNREACHABLE_MSG("Unimplemented conversion size: {}", static_cast(size)); + return value; } } @@ -626,6 +627,7 @@ public: return "floatBitsToInt(" + value + ')'; } else { UNREACHABLE(); + return value; } } @@ -2064,6 +2066,8 @@ private: std::to_string(instr.alu.GetSignedImm20_20())}; default: UNREACHABLE(); + return {regs.GetRegisterAsInteger(instr.gpr39, 0, false), + std::to_string(instr.alu.GetSignedImm20_20())}; } }(); const std::string offset = '(' + packed_shift + " & 0xff)"; @@ -3314,6 +3318,7 @@ private: return std::to_string(instr.r2p.immediate_mask); default: UNREACHABLE(); + return std::to_string(instr.r2p.immediate_mask); } }(); const std::string mask = '(' + regs.GetRegisterAsInteger(instr.gpr8, 0, false) + @@ -3777,7 +3782,9 @@ private: } break; } - default: { UNIMPLEMENTED_MSG("Unhandled instruction: {}", opcode->get().GetName()); } + default: { + UNIMPLEMENTED_MSG("Unhandled instruction: {}", opcode->get().GetName()); + } } break; @@ -3932,4 +3939,4 @@ std::optional DecompileProgram(const ProgramCode& program_code, u return {}; } -} // namespace OpenGL::GLShader::Decompiler \ No newline at end of file +} // namespace OpenGL::GLShader::Decompiler -- cgit v1.2.3 From 20859802f01e64e4407df8bf7fb362449bd68cee Mon Sep 17 00:00:00 2001 From: David Marcec Date: Wed, 19 Dec 2018 13:22:09 +1100 Subject: hopefully fix clang format issue --- src/video_core/renderer_opengl/gl_shader_decompiler.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/video_core/renderer_opengl/gl_shader_decompiler.cpp') diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp index 836865e14..68c591316 100644 --- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp +++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp @@ -3784,6 +3784,7 @@ private: } default: { UNIMPLEMENTED_MSG("Unhandled instruction: {}", opcode->get().GetName()); + break; } } -- cgit v1.2.3