diff --git a/src/dos/dos_memory.cpp b/src/dos/dos_memory.cpp index 2279c216..e2e3d9d3 100644 --- a/src/dos/dos_memory.cpp +++ b/src/dos/dos_memory.cpp @@ -165,6 +165,11 @@ bool DOS_ResizeMemory(Bit16u segment,Bit16u * blocks) { bool DOS_FreeMemory(Bit16u segment) { //TODO Check if allowed to free this segment + if ((segment-1) < MEM_START){ + LOG(LOG_DOSMISC,LOG_ERROR)("Program tried to free %X ---ERROR",segment); + return false; + } + DOS_MCB mcb(segment-1); mcb.SetPSPSeg(MCB_FREE); DOS_CompressMemory();