From 8fb1f7cc97bdb92999309597c5e7259099bf5ce4 Mon Sep 17 00:00:00 2001 From: Sebastian Valle Date: Tue, 1 Oct 2013 16:27:57 -0500 Subject: Tools/MeshExtractor: Implemented 7ca6f56a065a666fc605d2fa402a2eea14bc40c0 in MeshExtractor and fixed a memory leak. --- src/tools/mesh_extractor/MPQ.h | 3 ++- src/tools/mesh_extractor/MPQManager.cpp | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/tools/mesh_extractor/MPQ.h b/src/tools/mesh_extractor/MPQ.h index 2f8b082f526..30e11741550 100644 --- a/src/tools/mesh_extractor/MPQ.h +++ b/src/tools/mesh_extractor/MPQ.h @@ -26,7 +26,8 @@ public: libmpq__off_t size, transferred; libmpq__file_unpacked_size(mpq_a, filenum, &size); - char *buffer = new char[size]; + char* buffer = new char[size + 1]; + buffer[size] = '\0'; libmpq__file_read(mpq_a, filenum, (unsigned char*)buffer, size, &transferred); diff --git a/src/tools/mesh_extractor/MPQManager.cpp b/src/tools/mesh_extractor/MPQManager.cpp index facd96a28f0..4d3ab808a2e 100644 --- a/src/tools/mesh_extractor/MPQManager.cpp +++ b/src/tools/mesh_extractor/MPQManager.cpp @@ -110,5 +110,6 @@ FILE* MPQManager::GetFileFrom(const std::string& path, MPQArchive* file ) } fwrite(buffer, sizeof(uint8), size, ret); fseek(ret, 0, SEEK_SET); + delete[] buffer; return ret; } -- cgit v1.2.3