fs_mitm: Fix mismatched new[] / delete (#389)

* fs.mitm: Fix mismatched new[] / delete

Using delete instead of delete[] on a pointer given by new[] is
undefined behaviour.

For memory sources, malloc/free are used because cleaning up is tricky
when data can be either allocated with new (RomfsHeader) or new[]
(metadata).

* set.mitm: Fix mismatched new[] / delete
This commit is contained in:
Léo Lam
2019-03-08 16:25:33 +01:00
committed by SciresM
parent 66560d0a7b
commit b6d3df3335
3 changed files with 16 additions and 15 deletions

View File

@@ -15,6 +15,7 @@
*/
#pragma once
#include <cstdlib>
#include <switch.h>
#include <map>
@@ -120,10 +121,10 @@ struct RomFSSourceInfo {
case RomFSDataSource::MetaData:
break;
case RomFSDataSource::LooseFile:
delete this->loose_source_info.path;
delete[] this->loose_source_info.path;
break;
case RomFSDataSource::Memory:
delete this->memory_source_info.data;
std::free((void*)this->memory_source_info.data);
break;
default:
fatalSimple(0xF601);