From b70c4fb48ec32057e56d9c0373794670bddd4f34 Mon Sep 17 00:00:00 2001 From: bunnei Date: Fri, 4 Jul 2014 20:32:06 -0400 Subject: NCCH: Updated ExeFS memory allocation to be safer. --- src/core/loader/ncch.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/core/loader/ncch.cpp') diff --git a/src/core/loader/ncch.cpp b/src/core/loader/ncch.cpp index a8233890..ba27eb75 100644 --- a/src/core/loader/ncch.cpp +++ b/src/core/loader/ncch.cpp @@ -157,7 +157,12 @@ ResultStatus AppLoader_NCCH::LoadSectionExeFS(const char* name, std::vector& // Section is compressed... if (i == 0 && is_compressed) { // Read compressed .code section... - std::unique_ptr temp_buffer(new u8[exefs_header.section[i].size]); + std::unique_ptr temp_buffer; + try { + temp_buffer.reset(new u8[exefs_header.section[i].size]); + } catch (std::bad_alloc&) { + return ResultStatus::ErrorMemoryAllocationFailed; + } file.ReadBytes(&temp_buffer[0], exefs_header.section[i].size); // Decompress .code section... -- cgit v1.2.3