load_dbm.cpp | load_dbm.cpp | |||
---|---|---|---|---|
skipping to change at line 99 | skipping to change at line 99 | |||
DWORD flags; | DWORD flags; | |||
DWORD samplesize; | DWORD samplesize; | |||
BYTE sampledata[2]; // [samplesize] | BYTE sampledata[2]; // [samplesize] | |||
} DBMSAMPLE; | } DBMSAMPLE; | |||
#pragma pack() | #pragma pack() | |||
BOOL CSoundFile::ReadDBM(const BYTE *lpStream, DWORD dwMemLength) | BOOL CSoundFile::ReadDBM(const BYTE *lpStream, DWORD dwMemLength) | |||
//--------------------------------------------------------------- | //--------------------------------------------------------------- | |||
{ | { | |||
DBMFILEHEADER *pfh = (DBMFILEHEADER *)lpStream; | const DBMFILEHEADER *pfh = (DBMFILEHEADER *)lpStream; | |||
DWORD dwMemPos; | DWORD dwMemPos; | |||
UINT nOrders, nSamples, nInstruments, nPatterns; | UINT nOrders, nSamples, nInstruments, nPatterns; | |||
if ((!lpStream) || (dwMemLength <= sizeof(DBMFILEHEADER)) || (!pfh-> channels) | if ((!lpStream) || (dwMemLength <= sizeof(DBMFILEHEADER)) || (!pfh-> channels) | |||
|| (pfh->dbm_id != DBM_FILE_MAGIC) || (!pfh->songs) || (pfh->song_i d != DBM_ID_SONG) | || (pfh->dbm_id != DBM_FILE_MAGIC) || (!pfh->songs) || (pfh->song_i d != DBM_ID_SONG) | |||
|| (pfh->name_id != DBM_ID_NAME) || (pfh->name_len != DBM_NAMELEN) | || (pfh->name_id != DBM_ID_NAME) || (pfh->name_len != DBM_NAMELEN) | |||
|| (pfh->info_id != DBM_ID_INFO) || (pfh->info_len != DBM_INFOLEN)) return FALSE; | || (pfh->info_id != DBM_ID_INFO) || (pfh->info_len != DBM_INFOLEN)) return FALSE; | |||
dwMemPos = sizeof(DBMFILEHEADER); | dwMemPos = sizeof(DBMFILEHEADER); | |||
nOrders = bswapBE16(pfh->orders); | nOrders = bswapBE16(pfh->orders); | |||
if (dwMemPos + 2 * nOrders + 8*3 >= dwMemLength) return FALSE; | if (dwMemPos + 2 * nOrders + 8*3 >= dwMemLength) return FALSE; | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |