Skip to content

Commit 8b19c81

Browse files
committed
Revise DMF duplicate pattern check to prevent hangs.
1 parent 772a719 commit 8b19c81

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/load_dmf.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,11 +152,11 @@ BOOL CSoundFile::ReadDMF(const BYTE *lpStream, DWORD dwMemLength)
152152
// "PATT"
153153
case 0x54544150:
154154
patt = (DMFPATT *)(lpStream+dwMemPos);
155+
if ((patt->patsize >= dwMemLength) || (dwMemPos + 8 > dwMemLength - patt->patsize)) goto dmfexit;
155156
if (!m_nChannels)
156157
{
157158
UINT numpat;
158159
DWORD dwPos = dwMemPos + 11;
159-
if ((patt->patsize >= dwMemLength) || (dwMemPos + patt->patsize + 8 > dwMemLength)) goto dmfexit;
160160
numpat = patt->numpat;
161161
if (numpat > MAX_PATTERNS) numpat = MAX_PATTERNS;
162162
m_nChannels = patt->tracks;

0 commit comments

Comments
 (0)