From d47450c6d75dc208f3e0315eae30f9bcd7f418bb Mon Sep 17 00:00:00 2001 From: Patryk Obara Date: Sat, 29 Feb 2020 22:43:46 +0100 Subject: [PATCH] Fix memory leak in dos_execute --- src/dos/dos_execute.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/dos/dos_execute.cpp b/src/dos/dos_execute.cpp index b2a99869..a6003f81 100644 --- a/src/dos/dos_execute.cpp +++ b/src/dos/dos_execute.cpp @@ -309,7 +309,7 @@ bool DOS_Execute(char * name,PhysPt block_pt,Bit8u flags) { if (imagesize+headersize<512) imagesize = 512-headersize; } } - Bit8u * loadbuf=(Bit8u *)new Bit8u[0x10000]; + uint8_t *loadbuf = new uint8_t[0x10000]; if (flags!=OVERLAY) { /* Create an environment block */ envseg=block.exec.envseg; @@ -347,6 +347,7 @@ bool DOS_Execute(char * name,PhysPt block_pt,Bit8u flags) { DOS_CloseFile(fhandle); DOS_SetError(DOSERR_INSUFFICIENT_MEMORY); DOS_FreeMemory(envseg); + delete [] loadbuf; return false; } } @@ -398,7 +399,7 @@ bool DOS_Execute(char * name,PhysPt block_pt,Bit8u flags) { mem_writew(address,mem_readw(address)+relocate); } } - delete[] loadbuf; + delete [] loadbuf; DOS_CloseFile(fhandle); /* Setup a psp */