modplug-xmms-26243ab9fe1171f70053e9aec4b20e9f7de9e4ef.patch 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. From 26243ab9fe1171f70053e9aec4b20e9f7de9e4ef Mon Sep 17 00:00:00 2001
  2. From: Konstanty Bialkowski <metaplasma@users.sourceforge.net>
  3. Date: Tue, 19 Jul 2011 23:24:08 +1000
  4. Subject: [PATCH] Fix AMS and DSM too large by one - SA45131/C
  5. AMS and DSM use 1 based indexing for samples. Therefore the maximum
  6. number of instruments is MAX_SAMPLES - 1.
  7. ---
  8. libmodplug/src/load_ams.cpp | 2 +-
  9. libmodplug/src/load_dsm.cpp | 2 +-
  10. 2 files changed, 2 insertions(+), 2 deletions(-)
  11. diff --git a/libmodplug/src/load_ams.cpp b/libmodplug/src/load_ams.cpp
  12. index 774b2be..4a29087 100644
  13. --- a/libmodplug/src/load_ams.cpp
  14. +++ b/libmodplug/src/load_ams.cpp
  15. @@ -52,7 +52,7 @@ BOOL CSoundFile::ReadAMS(LPCBYTE lpStream, DWORD dwMemLength)
  16. if ((!lpStream) || (dwMemLength < 1024)) return FALSE;
  17. if ((pfh->verhi != 0x01) || (strncmp(pfh->szHeader, "Extreme", 7))
  18. - || (!pfh->patterns) || (!pfh->orders) || (!pfh->samples) || (pfh->samples > MAX_SAMPLES)
  19. + || (!pfh->patterns) || (!pfh->orders) || (!pfh->samples) || (pfh->samples >= MAX_SAMPLES)
  20. || (pfh->patterns > MAX_PATTERNS) || (pfh->orders > MAX_ORDERS))
  21. {
  22. return ReadAMS2(lpStream, dwMemLength);
  23. diff --git a/libmodplug/src/load_dsm.cpp b/libmodplug/src/load_dsm.cpp
  24. index 4f51469..03819a5 100644
  25. --- a/libmodplug/src/load_dsm.cpp
  26. +++ b/libmodplug/src/load_dsm.cpp
  27. @@ -101,7 +101,7 @@ BOOL CSoundFile::ReadDSM(LPCBYTE lpStream, DWORD dwMemLength)
  28. if (m_nChannels < 4) m_nChannels = 4;
  29. if (m_nChannels > 16) m_nChannels = 16;
  30. m_nSamples = psong->numsmp;
  31. - if (m_nSamples > MAX_SAMPLES) m_nSamples = MAX_SAMPLES;
  32. + if (m_nSamples >= MAX_SAMPLES) m_nSamples = MAX_SAMPLES - 1;
  33. m_nDefaultSpeed = psong->speed;
  34. m_nDefaultTempo = psong->bpm;
  35. m_nDefaultGlobalVolume = psong->globalvol << 2;
  36. --
  37. 1.7.0.1