pull/29/merge
Pavel Gushchin 9 years ago committed by GitHub
commit 107dfe33f0

@ -282,7 +282,13 @@ BOOL CSoundFile::ReadXM(const BYTE *lpStream, DWORD dwMemLength)
if (dwMemPos + sizeof(XMINSTRUMENTHEADER) >= dwMemLength) return TRUE;
pih = (XMINSTRUMENTHEADER *)(lpStream+dwMemPos);
if (dwMemPos + bswapLE32(pih->size) > dwMemLength) return TRUE;
if ((Headers[iIns] = new INSTRUMENTHEADER) == NULL) continue;
try {
Headers[iIns] = new INSTRUMENTHEADER;
}
catch (std::bad_alloc& ba) {
continue;
}
memset(Headers[iIns], 0, sizeof(INSTRUMENTHEADER));
memcpy(Headers[iIns]->name, pih->name, 22);
if ((nsamples = pih->samples) > 0)
@ -519,12 +525,14 @@ BOOL CSoundFile::ReadXM(const BYTE *lpStream, DWORD dwMemLength)
dwMemPos += 8;
if ((dwMemPos + len <= dwMemLength) && (len < 16384))
{
try {
m_lpszSongComments = new char[len + 1];
if (m_lpszSongComments)
{
memcpy(m_lpszSongComments, lpStream + dwMemPos, len);
m_lpszSongComments[len] = 0;
}
catch (std::bad_alloc& ba) {
}
dwMemPos += len;
}
}
@ -546,13 +554,14 @@ BOOL CSoundFile::ReadXM(const BYTE *lpStream, DWORD dwMemLength)
dwMemPos += 8;
if ((dwMemPos + len <= dwMemLength) && (len <= MAX_PATTERNS*MAX_PATTERNNAME) && (len >= MAX_PATTERNNAME))
{
try {
m_lpszPatternNames = new char[len];
if (m_lpszPatternNames)
{
m_nPatternNames = len / MAX_PATTERNNAME;
memcpy(m_lpszPatternNames, lpStream + dwMemPos, len);
}
catch (std::bad_alloc& ba) {
}
dwMemPos += len;
}
}

@ -13,6 +13,8 @@
#ifndef __SNDFILE_H
#define __SNDFILE_H
#include <new>
#ifdef UNDER_CE
int _strnicmp(const char *str1,const char *str2, int n);
#endif

Loading…
Cancel
Save