From e0781ccfc15500fc51122dcb795d84f836c8cec9 Mon Sep 17 00:00:00 2001 From: David Holm Date: Sat, 29 Dec 2018 11:50:47 +0100 Subject: [PATCH] diskimage: Fix memory leak Use array delete operator for pointer that was allocated with new[] so that all entries are deleted. --- DiskImage.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/DiskImage.cpp b/DiskImage.cpp index abf96f5..ac29e2e 100644 --- a/DiskImage.cpp +++ b/DiskImage.cpp @@ -1394,7 +1394,7 @@ void TDiskImage::readFDI(int hfile, bool readonly) { if (rsize < fdiOFF) { - delete tracksinfo; + delete[] tracksinfo; delete ptr; ShowError(ERR_CORRUPT); return; @@ -1405,7 +1405,7 @@ void TDiskImage::readFDI(int hfile, bool readonly) if (rsize < fdiOFFdata + tracksinfo[trk*(MaxSide + 1) + side].DataOffset) { - delete tracksinfo; + delete[] tracksinfo; delete ptr; ShowError(ERR_CORRUPT); return; @@ -1424,7 +1424,7 @@ void TDiskImage::readFDI(int hfile, bool readonly) if (rsize < fdiOFFdata + tracksinfo[trk*(MaxSide + 1) + side].DataOffset + tracksinfo[trk*(MaxSide + 1) + side].SectorsInfo[isec].SectorOffset) { - delete tracksinfo; + delete[] tracksinfo; delete ptr; ShowError(ERR_CORRUPT); return; @@ -1475,7 +1475,7 @@ void TDiskImage::readFDI(int hfile, bool readonly) if (trkdatalen + SecCount*(3 + 2) > 6250) // 3x4E & 2x00 per sec checking { - delete tracksinfo; + delete[] tracksinfo; delete ptr; for (int t = 0; t < 256; t++) for (int s = 0; s < 256; s++) @@ -1640,7 +1640,7 @@ void TDiskImage::readFDI(int hfile, bool readonly) } } - delete tracksinfo; + delete[] tracksinfo; delete ptr; ReadOnly = readonly; FType = DIT_FDI;