From 93041bbce5b3c8a58782050a65bae32bf54247a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Janiszewski?= Date: Sun, 11 Mar 2018 20:55:30 +0100 Subject: [PATCH] Fix mismatched deleter in TryClassifyAsTD4_TD6 --- src/openrct2/FileClassifier.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/openrct2/FileClassifier.cpp b/src/openrct2/FileClassifier.cpp index c4c36de660..63897522bb 100644 --- a/src/openrct2/FileClassifier.cpp +++ b/src/openrct2/FileClassifier.cpp @@ -140,12 +140,13 @@ static bool TryClassifyAsTD4_TD6(IStream * stream, ClassifiedFileInfo * result) try { size_t dataLength = (size_t)stream->GetLength(); - std::unique_ptr data(stream->ReadArray(dataLength)); + auto deleter_lambda = [dataLength](uint8 * ptr) { Memory::FreeArray(ptr, dataLength); }; + std::unique_ptr data(stream->ReadArray(dataLength), deleter_lambda); stream->SetPosition(originalPosition); if (sawyercoding_validate_track_checksum(data.get(), dataLength)) { - std::unique_ptrtd6data(Memory::Allocate(0x10000)); + std::unique_ptr)> td6data(Memory::Allocate(0x10000), &Memory::Free); size_t td6len = sawyercoding_decode_td6(data.get(), td6data.get(), dataLength); if (td6data != nullptr && td6len >= 8) {